Applying colors on textures

ABSTRACT

Systems, methods, and non-transitory computer-readable media are disclosed for extracting colors of an input image and applying such colors to a procedural texture to modify the procedural texture. For instance, the disclosed systems can extract one or more colors from an input image to generate a color palette that represents colors that are generally visually noticeable to human eyes. Furthermore, the disclosed systems can apply colors from the color palette to a target procedural texture to modify the target procedural texture to represent the colors of the color palette. Moreover, the disclosed systems can display generated color palettes and modified procedural textures/materials in a graphical user interface.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of, and priority to, French patentapplication number FR/18/00634 filed on Jun. 19, 2018. The entirecontents of the foregoing patent application are hereby incorporated byreference.

BACKGROUND

Recent years have seen a rapid increase in the use of computer graphicsto create digital content. In particular, individuals and businessesincreasingly utilize, create, modify, and/or view digital contentgenerated using computer graphics techniques (e.g., video games, videossuch as animated films, and/or object libraries used in software toolsof architecture, industrial design). One way in which computer graphicshas recently advanced is the use of materials and textures that providecomputer-generated objects and environments with realistic appearances.

Recent advancements in textures include procedural textures. Proceduraltextures are created using algorithms rather than conventionalcapture-based textures (i.e., images). Procedural textures providevarious advantages over conventional capture-based textures. Forexample, procedural textures have smaller file sizes that result in lowstorages costs. Furthermore, procedural textures are resolutionindependent. In other words, the resolution of a procedural texture isnot determined by a resolution of a bitmap image and can be adjusted orincreased on demand. Finally, procedural textures allow for moreefficient texture mapping.

Unfortunately, given that procedural textures are based on algorithmsthey are inherently more complex than capture-based texture. Thecomplexity of procedural textures means that very few computer-graphicartists have the ability to create or modify procedural textures.Indeed, modifying procedural textures using conventional systemsrequires computer-graphic artists to work with purely mathematicalparameters, which are typically not intuitive. As such, modifyingprocedural textures using conventional systems is typically a lengthy,tedious, and complex process.

Given the foregoing, computer-graphic artists, particularly noviceartists, typically must use existing procedural textures inpre-generated libraries or use capture-based textures. Existingprocedural textures can be limited, ill-suited for a particular project,or otherwise unsatisfactory. Furthermore, the use of existing proceduraltextures results in limited flexibility in designing and can stymieartistic creativity. On the other hand, using capture-based texturesresults in the need for more computing resources, limited resolution,and less efficient texture mapping and rendering.

SUMMARY

This disclosure describes one or more embodiments that provide benefitswith systems, computer-readable media, and methods that allow forefficient, flexible, and intuitive modification of procedural texturesand procedural materials. More specifically, in one or more embodiments,the disclosed systems provides for integration of procedural andcapture-based textures during texture modification and creation. Forexample, one or more embodiments, allow for modification of a proceduraltexture based on a captured image. In particular, one or moreembodiments can accurately and efficiently extract colors from an imageand apply those colors to a procedural texture to generate a variationof the procedural texture. In particular, the disclosed systems cangenerate a color palette from an image and apply the color palette to aprocedural texture. For instance, the disclosed systems can extractcolors from an image based on a selected color property. Furthermore,the disclosed systems can modify a procedural texture by applying colorsof the generated color palette to the procedural texture or anassociated procedural material. Additionally, the disclosed systems candisplay the input image, the generated color palette, and the variedprocedural texture/material in a graphical user interface. In thismanner, the disclosed systems provide an efficient procedural texturemodification tool that allows for efficient, flexible, and intuitivemodification and visualization of procedural textures and materials.

For example, in order to modify a target procedural texture, in one ormore embodiments, the disclosed systems receive an input image. Inaddition, the disclosed systems can extract one or more colors from theinput image to generate a color palette. The disclosed systems can thenapply at least one color from the color palette to a target proceduraltexture. Furthermore, the disclosed systems can display the targetprocedural texture with the applied at least one color from the colorpalette in the graphical user interface. The disclosed systems can thenoptionally apply the modified procedural texture to a proceduralmaterial and/or computer-generated object.

Additional features and advantages of one or more embodiments of thepresent disclosure will be set forth in the description which follows,and in part will be obvious from the description, or may be learned bythe practice of such example embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingdrawings in which:

FIG. 1 illustrates a schematic diagram of an example environment inwhich a procedural texture modification system can operate in accordancewith one or more embodiments.

FIGS. 2A-2C illustrate graphical user interfaces showing a workflow ofgenerating a color palette from an image and modifying a proceduraltexture with the color palette in accordance with one or moreembodiments.

FIG. 3 illustrates a state diagram of generating a color palette from animage in accordance with one or more embodiments.

FIGS. 4 and 5A-5F illustrate user interfaces displaying color palettesgenerated from an image in accordance with one or more embodiments.

FIG. 6 illustrates a diagram of applying colors from a color palette toa target procedural texture in accordance with one or more embodiments.

FIG. 7 illustrates a user interface displaying modified textures using asingle color application mode in accordance with one or moreembodiments.

FIG. 8 illustrates a user interface displaying a modified texture usinga plurality of colors application mode in accordance with one or moreembodiments.

FIG. 9 illustrates a schematic diagram of a procedural texturemodification system in accordance with one or more embodiments.

FIG. 10 illustrates a flowchart of a series of acts for extracting oneor more colors from an input image to generate a color palette andapplying colors from the color palette to a target procedural texture inaccordance with one or more embodiments.

FIG. 11 illustrates a flowchart of another series of acts for extractingone or more colors from an input image to generate a color palette andapplying colors from the color palette to a target procedural texture inaccordance with one or more embodiments.

FIG. 12 illustrates a block diagram of an example computing device inaccordance with one or more embodiments.

DETAILED DESCRIPTION

One or more embodiments of the present disclosure include a proceduraltexture modification system that can extract one or more colors from aninput image to generate a color palette and apply colors from the colorpalette to a procedural texture to generate a new or modified proceduraltexture. In other words, the procedural texture modification system canmodify a procedural texture using a color palette generated from a userselected image in a work interface for modifying procedural textures.Indeed, by generating a color palette from a user selected image andapplying colors from the color palette to a target procedural texture,the procedural texture modification system can enable efficient and easymodification (and/or visualization) of a procedural texture using avariety of visual aspects (e.g., different color schemes and/or styles).

In one or more embodiments, the procedural texture modification systemgenerates a color palette from an image. In particular, the proceduraltexture modification system can receive a user selected image andoptionally a color property preference (e.g., a color palette type).Furthermore, the procedural texture modification system can quantifypixels of the image in a chromatic space to distribute them in colorcompartments. Moreover, the procedural texture modification system canassign weights to each color compartment and alter the weights accordingto the selected color property preference. Then, the procedural texturemodification system can select N number of the highest weighted colorsamongst the color compartments and generate the color palette from theselected colors. After selection of a color and prior to selecting asubsequent color for the color palette, the procedural texturemodification system can alter the weights of the color compartmentsusing distance values based on similarities between the selected colorand the color compartments to promote color distinctiveness in the colorpalette.

Additionally, as previously mentioned, the procedural texturemodification system can apply colors of the generated color palette to atarget procedural texture. For instance, the procedural texturemodification system can apply colors of the generated color palette tothe target procedural texture using one of two application modes (e.g.,a plurality of colors application mode and a single color applicationmode). In both application modes, the procedural texture modificationsystem can apply one or more colors of the generated color palette tothe target procedural texture to modify visual aspects of the targetprocedural texture.

For example, in the plurality of colors application mode, the proceduraltexture modification system can identify one or more colorimetricparameters from the target procedural texture (e.g., texture colorparameters). Additionally, the procedural texture modification systemcan apply the colors of the color palette to the target proceduraltexture by mapping (or pairing) the colors of the color palette to theone or more texture color parameters of the target procedural texture(e.g., to replace the one or more texture color parameters).Furthermore, in the single color application mode, the proceduraltexture modification system can apply a single color from the colorpalette to affect the dominant color for the entire target proceduraltexture (e.g., modifying a dominant color present in the targetprocedural texture while leaving one or more other colors of theprocedural texture unchanged). Indeed, the procedural texturemodification system can apply each individual color from the colorpalette to the target procedural texture to generate multiple variationsof the target procedural texture.

In addition, the procedural texture modification system can include agraphical user interface for texture modification. For instance, theprocedural texture modification system can display the input image andone or more color palettes (e.g., visual representations of the colorpalettes) generated from the input image in the graphical userinterface. Furthermore, the procedural texture modification system canalso display the target procedural texture and one or more modifiedversions of the target procedural texture (e.g., as a modified texturemapping for a procedural material) resulting from an application of theone or more colors from the color palette.

As mentioned above, conventional systems have a number of shortcomings.In particular, conventional systems are often inaccurate, inflexible,and inefficient in regard to modifying textures, particularly proceduraltextures. Furthermore, while some conventional systems can extractcolors from an image, these conventional systems often extract colors inan inflexible and inaccurate manner. In particular, conventional systemscan oftentimes extract colors that do not accurately represent thecolors from the image that are visually meaningful to a user. Forexample, many conventional systems have a tendency to extract only themost common colors present in an image (e.g., an average of colorspresent in an image). As such, conventional systems often extract colorsthat are common in an image, due to average values of colors in theimage, however such colors are not always present in the image and,therefore, are not the colors that are perceived by a human.Furthermore, conventional digital graphics systems sometimes generatecolor palettes for an image by utilizing colors that may complement eachother in the palette, however this often results in color paletteshaving mismatched color attributes (e.g., a dark color in a colorpalette meant for bright colors). Indeed, such conventional digitalgraphics systems often provide unpredictable color palettes.

The procedural texture modification system of one or moreimplementations of the present disclosure provides advantages andbenefits over conventional systems and methods by generating, from animage, a color palette having the most perceptually visible andrepresentative colors, applying colors from the color palette to atarget procedural texture, and/or displaying the modified targetprocedural texture in a graphical user interface. For instance, theprocedural texture modification system can accurately, easily, and/orefficiently modify (and display) a target procedural texture to presenta user with a variety of color options for the target proceduraltexture. For example, the procedural texture modification system canextract colors from an image that accurately represent the colorsvisually perceptible to a human by extracting colors that are determinedto have the most visual effect. The flexibility and intuitive manner ofmodifying procedural textures can inspire and enable creativity increating and modifying procedural textures.

Moreover, the procedural texture modification system enables users toeasily extract colors from an image (e.g., displayed as a generatedcolor palette) and apply the colors to a procedural texture to modifyvisual aspects of the texture without having to implement tedioussettings that may involve mathematical parameters. Indeed, theprocedural texture modification system enables users to quickly andefficiently modify procedural textures using colors from an image. Thus,the procedural texture modification system can provide the ease andintuitive nature of capture-based textures with the computationalefficiency provided by procedural textures.

In particular, the procedural texture modification system moreefficiently utilizes computational resources to modify proceduraltextures in comparison to some conventional systems. For example, theprocedural texture modification system reduces the number of steps auser takes to modify procedural textures (e.g., steps such as manualselection of colors, identification of where to apply the colors on aprocedural texture, and/or working with mathematical parameters tomodify procedural textures). Indeed, by reducing such steps, theprocedural texture modification system utilizes less computationalresources while modifying and displaying a texture in comparison to someconventional systems. Also, by reducing such steps, the proceduraltexture modification system enables a user to modify procedural texturesin less time compared to some conventional systems.

As illustrated by the foregoing discussion, the present disclosureutilizes a variety of terms to describe features and advantages of theprocedural texture modification system. Additional detail is nowprovided regarding the meaning of such terms. For example, as usedherein, the term “image” (sometimes referred to as “digital image,”“input image,” and/or “inspirational image”) can refer to anyrepresentation of a digital symbol, picture, icon, and/or illustration.In particular, the term “image” can refer to digital content thatincludes visual properties such as colorimetric parameters to representand/or portray a symbol, picture, icon, and/or illustration. Moreover,the term “image” can refer to digital content utilized by a user tocreate a color palette as described below. The term “digital image” caninclude digital files with the following, or other, file extensions:JPG, TIFF, BMP, PNG, RAW, or PDF.

Moreover, as used herein, the term “color” can refer to a propertybelonging to digital content (e.g., an image, texture, etc.) that isgenerally determined based on hue, saturation, and/or brightness oflight reflected corresponding to an image and/or texture. For example,the term “color” can include properties corresponding to an RGB colorspace, HSV color space and/or a CIELAB color space.

Additionally, as used herein, the term “color palette” can refer to arange of colors. In particular, the term “color palette” can refer to arange of colors from an image (or texture) that represent colors thatare visually perceptible in the image (or texture). For instance, acolor palette can include one or more colors extracted from an image inaccordance with one or more embodiments herein.

As used herein, the term “color compartment” (sometimes referred to as“color bin”) can refer to a collection of pixels and corresponding colorparameters (e.g., color settings and/or colorimetric parameters) from animage. In particular, the term “color compartment” can refer to acollection of one or more quantified pixels from a L*a*b spacecorresponding to an image. For instance, a color compartment can includeone or more colorimetric parameters (e.g., based on the L*a*b space)corresponding to one or more pixels of an image. As used herein, theterm “colorimetric parameter” can refer to one or more values thatrepresent the intensity and/or other attributes of a color. Indeed, thecolorimetric parameter can include one or more values from a CIELABcolor space such as a lightness value and one or more color channels(e.g., a green-red component and a blue-yellow component).

As used herein, the term “color property preference” (sometimes referredto as “color property”) can refer to a preference for one or moreproperties and/or characteristics corresponding to visual aspects and/ortones corresponding to colors. In particular, the color propertypreference can include a selection of a color palette type. Forinstance, as used herein, the term “color palette type” (sometimesreferred to as “color palette tone”) can refer to one or more colorproperties that represent a specific tone within digital content. Forexample, a color palette type can include a selection of a color palettethat follows a specific tone such as a representative color palette,pure color palette, bright color palette, pastel color palette, deepcolor palette, and/or a dark color palette.

As used herein, the term “distance” (sometimes referred to as “distancevalue”) can refer to a value representing similarities betweenattributes of two or more characteristics and/or attributes. As anexample, the procedural texture modification system distance value candetermine distance values using a CIELAB Delta E 2000 calculation inaccordance with one or more embodiments herein. In particular, the term“distance” can refer to a value that measures the similarity of two ormore parameters of images and/or textures. For example, a distance caninclude a value that measures color similarity. Furthermore, as usedherein, the term “color similarity” can refer to an indication of howsimilar and/or different two colors are in a color space. For instance,the color similarity between two colors can be based on similaritiesand/or differences measured by a distance value between attributes ofthe two colors (e.g., colorimetric parameters) in a color space.

As used herein, the term “texture” can refer to a digital representationof a surface of a graphical object. In particular, as used herein, theterm “texture” can refer to a color map that corresponds to a surface ofa graphical object. For example, a texture can include a color map of asurface (e.g., a material) of a graphical object (e.g., an object havinggraphical material properties). Furthermore, as used herein, the term“procedural texture” can refer to a texture that is created using amathematical (and/or an algorithmic) description (e.g., a descriptionutilized as instruction to render the procedural texture for display).In particular, the term “procedural texture” can refer to a texture thatis created using mathematical descriptions (and/or instructions) ratherthan stored data (e.g., a bitmap image) to map onto materials and/orother graphical objects of varying sizes (e.g., a texture that iscreated at runtime rather than applied from stored data). For example, aprocedural texture can include a texture that is created using amathematical description that includes texture color parameters. As usedherein, the term “texture color parameter” can refer to color settingsand/or parameters of a procedural texture. For instance, the texturecolor parameters can include colorimetric parameters of a color mapbelonging to a procedural texture.

Moreover, as used herein, the term “material” can refer to a set ofgraphical properties that stimulate real-life materials on graphicalobjects (e.g., 3D modeling data). In particular, the term “material” canrefer to a set of graphical properties that include a texture mapping,rendering parameters (e.g., a bidirectional reflectance distributionfunction), and/or physics behavioral properties (e.g., friction). Forinstance, a material can include a set of graphical properties that areapplied to graphical objects such that the graphical objects stimulatereal-life materials such as, but not limited to, wood, concrete, metal,glass, water, fabric, plastic (e.g., visually and physically).Furthermore, as used herein, the term “procedural material” can refer toa material that utilizes a procedural texture to visually presentreal-life materials on graphical object. In particular, the term“procedural material” can refer to a material that is created utilizingmathematical descriptions (e.g., texture mappings based on proceduraltextures, physics behavioral algorithms, rendering parameters such asBRDF) to produce visual and physical properties of graphical objects.

As used herein, the term “color space characteristic” can refer to oneor more characteristics and/or values belonging to a color space model.For instance, the term “color space characteristic” can refer tocharacteristics and/or values belonging to an HSV model, RGB model, CMYKmodel, and/or CIELAB model. For example, a color space characteristiccan include a hue characteristic and/or a brightness characteristic. Asused herein, the term “hue characteristic” can refer to a hue value froma color space. For example, a hue characteristic can include a valuebetween 0 degrees and 360 degrees in an HSV model. Furthermore, as usedherein, the term “brightness characteristic” can refer to a brightnessvalue from a color space. For example, a brightness characteristic caninclude a value between 0 percent and a 100 percent in an HSV model.

As used herein, the term “color representativeness” can refer to ameasure of occurrence of similar color attributes (e.g., a colorimetricparameter) within an image and/or texture. In particular, the term“color representativeness” can refer to a measure of how often pixels ofan image (and/or parameters of a texture) are similar to a given color(and/or colorimetric parameter of the color). Determining colorrepresentativeness for a color compartment, color, and/or texture colorparameter in regard to an image and/or texture is described in greaterdetail in the figures below.

Turning now to the figures, FIG. 1 illustrates a schematic diagram ofone embodiment of an exemplary environment 100 in which a proceduraltexture modification system 106 can operate. As illustrated in FIG. 1,the exemplary environment 100 includes server device(s) 102, a network108, and a client device 110. As further illustrated in FIG. 1, theserver device(s) 102 and the client device 110 can communicate via thenetwork 108. Although FIG. 1 illustrates the server device(s) 102 andthe client device 110 communicating via the network 108, the variouscomponents of the environment 100 can communicate and/or interact viaother methods (e.g., the server device(s) 102 and the client device 110can communicate directly). Furthermore, although FIG. 1 illustrates theprocedural texture modification system 106 being implemented by aparticular component and/or device within the environment 100, theprocedural texture modification system 106 can be implemented, in wholeor in part, by other computing devices and/or components in theenvironment 100 (e.g., on the client device 110).

As shown in FIG. 1, the server device(s) 102 can include a digitalgraphics system 104 which further includes the procedural texturemodification system 106. In particular, the procedural texturemodification system 106 can generate color palettes from images inaccordance with one or more embodiments herein. Furthermore, theprocedural texture modification system 106 can modify proceduraltextures by applying colors from a color palette to a target proceduraltexture in accordance with one or more embodiments herein. Additionally,the procedural texture modification system 106 can provide, for display,images, generated color palettes, and/or modified procedural textures inaccordance with one or more embodiments herein. Furthermore, the serverdevice(s) 102 (e.g., via the procedural texture modification system 106)can store digital content (e.g., digital images), one or more generatedcolor palettes, one or more procedural textures, one or more proceduralmaterials, one or more modified procedural textures, and/or one or moremodified procedural materials. Additionally, the server device(s) 102(e.g., via the procedural texture modification system 106) can providedigital content (e.g., digital images), one or more generated colorpalettes, one or more textures, one or more procedural materials, one ormore modified procedural textures, and/or one or more modifiedprocedural materials to a client device 110. Moreover, the serverdevice(s) 102 can include a variety of types of computing devices,including those explained below with reference to FIG. 12.

Furthermore, as mentioned above and as shown in FIG. 1, the environment100 includes the client device 110. In one or more embodiments, theclient device 110 may include, but is not limited to, a mobile device(e.g., smartphone, tablet), a laptop, a desktop, or any other type ofcomputing device, including those explained below with reference to FIG.12. Furthermore, although not shown in FIG. 1, the client device 110 canbe operated by a user to perform a variety of functions. In particular,the client device 110 can perform functions such as, but not limited to,creating, storing, uploading, and/or modifying a variety of digitalcontent items (e.g., a digital image), color palettes, and/or textures.For example, the client device 110 can communicate with the serverdevice(s) 102 via the network 108 to provide one or more digital imagesto the server device(s) 102. Additionally, the client device 110 canselect digital images (and/or color property preferences) on the serverdevice(s) 102 to generate color palettes from the digital images and/orsave the color palettes (e.g., via the procedural texture modificationsystem 106). Furthermore, the client device 110 can utilize colorpalettes to modify procedural textures/materials and/or save themodified procedural textures/materials (e.g., via the procedural texturemodification system 106 on the server device(s) 102). Although FIG. 1illustrates the procedural texture modification system 106 on the serverdevice(s) 102, the procedural texture modification system 106 can beimplemented on the client device 110. Furthermore, although FIG. 1illustrates the environment with the client device 110, the environment100 can include a plurality of client devices.

Additionally, as shown in FIG. 1, the exemplary environment 100 includesthe network 108. As mentioned above, the network 108 can enablecommunication between components of the environment 100. In one or moreembodiments, the network 108 may include the Internet or World Wide Web.Additionally, the network 108 can include various types of networks thatuse various communication technology and protocols, such as a corporateintranet, a virtual private network (VPN), a local area network (LAN), awireless local network (WLAN), a cellular network, a wide area network(WAN), a metropolitan area network (MAN), or a combination of two ormore such networks. Indeed, the server device(s) 102, the client device110, and the network 108 may communicate using any communicationplatforms and technologies suitable for transporting data and/orcommunication signals, including any known communication technologies,devices, media, and protocols supportive of data communications,examples of which are described with reference to FIG. 12.

As mentioned above, the procedural texture modification system 106 canextract one or more colors from an input image to generate a colorpalette and apply colors from the color palette to a target proceduraltexture/material. Furthermore, as mentioned above, the proceduraltexture modification system 106 can display the color palette and thetarget procedural texture/material in a graphical user interface. Forinstance, FIGS. 2A-2C illustrate graphical user interfaces, of theprocedural texture modification system 106, showing a workflow ofgenerating a color palette from an image and modifying a proceduraltexture/material with the color palette.

For instance, as shown in FIG. 2A, the procedural texture modificationsystem 106 can receive a target procedural material in a graphical userinterface 202. In particular, as shown in FIG. 2A, the proceduraltexture modification system 106 can enable a user to select a targetprocedural material from a resources menu 206 (e.g., a leather materialand a calfskin material). Moreover, as illustrated in FIG. 2A, theprocedural texture modification system can display a graphical objectwith the selected target procedural material (e.g., a graphical objecthaving a leather based procedural material) as the target proceduralmaterial 204.

Then, as shown in FIG. 2B, the procedural texture modification system106 can receive an input image 214 from a user in the graphical userinterface 202. For example, the procedural texture modification system106 can enable a user to select a digital image available on a clientdevice (e.g., locally or on cloud storage) and/or a digital image from arepository (e.g., Adobe Stock). More particularly, the proceduraltexture modification system 106 allows a user to explore various imagesfor inspiration to change or modify the target procedural material 204.As shown in FIG. 2B, the user has selected an input image 214 oflipstick.

Furthermore, as illustrated in FIG. 2B, the procedural texturemodification system 106 can receive other parameters such as a number ofcolors to extract 208 (e.g., N selected colors) and a color strategy 210(e.g., a color palette type) from a user (described in greater detail inthe figures below). Indeed, the procedural texture modification system106 can utilize the input image 214, the number of colors to extract208, and a color strategy 210 to modify the target procedural material204 (e.g., by modifying a procedural texture of the target proceduralmaterial 204).

For example, as shown in FIG. 2B, the procedural texture modificationsystem 106 can generate and display a color palette 216 (e.g., a colorpalette corresponding to the input image 214 based on the color strategy210 of a representative color palette type 212). As shown the proceduraltexture modification system 106 can extract two colors form the inputimage 214 corresponding to the most representative (e.g., most used on apixel basis). In particular, as shown, the procedural texturemodification system 106 has extracted the peach color from thebackground of the image 214 and a red color from the lipstick.Furthermore, as shown in FIG. 2B, the procedural texture modificationsystem 106 can apply the colors from the color palette 216 to a targetprocedural texture belonging to the target procedural material 204(e.g., the separate colors from the color palette 216 are applied to thedistinctive texture colors of the target procedural material 204).Indeed, as shown in FIG. 2B, the procedural texture modification system106 can modify the target procedural material 204 by modifying a targetprocedural texture of the material to include the colors present in thecolor palette 216. Moreover, as illustrated in FIG. 2B, the proceduraltexture modification system 106 modifies the target procedural material204 by changing colors of the target procedural texture of the targetprocedural material 204 while maintaining other material properties(e.g., lighting, shading, surface properties of the material). Inparticular, the procedural texture modification system 106 changed thecolor of the leather to match the color of the background from the inputimage 214 and the color of the threads to match the color of thelipstick from the input image 214.

Additionally, the procedural texture modification system 106 can enablea user to select another color strategy (e.g., another color palettetype), generate an additional color palette, and further modify a targetprocedural material based on the additional color palette. Inparticular, in many use cases, an artist may not be interested in themost representative colors from an image. Rather the artist may desireto use deepest or more visually striking colors. For instance, as shownin FIG. 2C, the procedural texture modification system 106 can receive acolor strategy selection of a deepness color palette type 218 (i.e., adeep color palette type) in the graphical user interface 202. Then, asshown in FIG. 2C, the procedural texture modification system 106 cangenerate an additional color palette 220 based on the input image 214and the selected deepness color palette type 218. More specifically, theprocedural texture modification system 106 can extract the color fromthe lipstick and the color from the lipstick casing.

Additionally, as illustrated in FIG. 2C, the procedural texturemodification system 106 can modify the target procedural material 204 bymodifying the target procedural texture of the material to include thecolors present in the additional color palette 220 (e.g., to match thecolors of the lipstick and lipstick casing portrayed in the input imagerather than the background of the input image as in the color palette216). Thus, the procedural texture modification system 106 can allow auser to explore different images, different numbers of extracted colors,and different color palette types in order to generate an inspiring orcreative procedural texture/material. Furthermore, the proceduraltexture modification system 106 can allow for this flexible, intuitive,and efficient modification of procedural textures without requiring anartist to understand or modify the algorithms or parameters underlyingthe procedural texture/material. A more detailed description of theprocedural texture modification system 106 generating and displaying acolor palette from an input image is discussed in reference to FIGS. 3,4, and 5A-5F. Furthermore, a more detailed description of the proceduraltexture modification system 106 applying colors of a color palette to atarget procedural texture and displaying one or more modified targetprocedural textures/materials is discussed in reference to FIGS. 6, 7,and 8.

As mentioned above, the procedural texture modification system 106 cangenerate a color palette from a digital image. For instance, FIG. 3illustrates a state diagram of the procedural texture modificationsystem 106 generating a color palette from a digital image. Inparticular, FIG. 3 illustrates the procedural texture modificationsystem 106 converting a digital image into a chromatic space (in an act302), quantifying pixels of the digital image into color compartments(in an act 304), assigning and altering weights for each colorcompartment (in acts 306 and 308), and selecting colors from the highestweighted color compartments to generate a color palette (in acts 310,312, and 314). Furthermore, FIG. 3 also illustrates the proceduraltexture modification system 106 excluding neighbor compartments of aselected color prior to selecting a subsequent color for the colorpalette and scheduling the selected colors of the color palette (in acts310, 312, and 314).

For instance, as described above, the procedural texture modificationsystem 106 can load an input image. Furthermore, the procedural texturemodification system 106 can also receive a selection for a colorproperty preference. For instance, the procedural texture modificationsystem 106 can utilize the selected color property preference to affectthe tone (and/or other characteristics) of the colors extracted for thecolor palette by changing the way in which color compartments arecreated for the image, weights are assigned to color compartments,and/or weights are altered for the color compartments. For example, thecolor property preferences can include a selection of a color palettetype such as a representative color palette, a pure color palette, abright color palette, a pastel color palette, a deep color palette,and/or a dark color palette. Additionally, the procedural texturemodification system 106 can enable a user to select a number of colorsthat should be selected for the color palette. Furthermore, in someembodiments, the procedural texture modification system 106 defaults (orutilizes) a color property preference when a color property preferenceis not selected by a user.

For instance, the procedural texture modification system 106 can receivea selection of a representative color palette as the color propertypreference. In particular, the procedural texture modification system106 can affect the extraction of colors from a digital image to prefercolors that are most representative of the digital image (e.g., mostoccurring, most neighbor colors identified for a color) in response tothe selection of the representative color palette. Moreover, theprocedural texture modification system 106 can affect the extraction ofcolors from the digital image to prefer colors that are determined to bemore perceptible (e.g., colors that are more likely to be seen in adigital image) within the digital image. In some embodiments, theprocedural texture modification system 106 adds a bias to a purity ofexcitation of the color because the human eye perceives pure colors overother colors in response to a selection of the representative colorpalette.

In one or more embodiments, the procedural texture modification system106 can receive a selection of a pure color palette (e.g., a colorfulcolor palette) as the color property preference. In particular, theprocedural texture modification system 106 can affect the extraction ofcolors from a digital image to prefer colors with a higher saturation(e.g., a strong saturation) in response to the selection of the purecolor palette.

Additionally, the procedural texture modification system 106 can receivea selection of a bright color palette as the color property preference.In particular, the procedural texture modification system 106 can affectthe extraction of colors from a digital image to prefer colors with ahigher brightness (e.g., a strong brightness) in response to theselection of the bright color palette. Furthermore, the proceduraltexture modification system 106 can affect the extraction of colors froma digital image to prefer colors with both a higher brightness and ahigher saturation in response to the selection of the bright colorpalette. More specifically, the procedural texture modification system106 can affect the extraction of colors from a digital image to prefercolors with a higher brightness that are further associated with astrong saturation in response to the selection of the bright colorpalette.

Moreover, the procedural texture modification system 106 can receive aselection of a pastel color palette as the color property preference. Inparticular, the procedural texture modification system 106 can affectthe extraction of colors from a digital image to prefer colors with alesser saturation (e.g., a weak saturation) in response to the selectionof the pastel color palette. In addition, the procedural texturemodification system 106 can affect the extraction of colors from adigital image to prefer colors with both a lower saturation and that arebright (e.g., having a strong brightness) in response to the selectionof the pastel color palette. More specifically, the procedural texturemodification system 106 can affect the extraction of colors from adigital image to prefer colors with a lesser saturation that are furtherassociated with a higher brightness (e.g., a higher lightness) inresponse to the selection of the pastel color palette.

In some embodiments, the procedural texture modification system 106receives a selection of a deep color palette as the color propertypreference. In particular, the procedural texture modification system106 can affect the extraction of colors from a digital image to prefercolors that are darker (e.g., having a weak and/or lesser brightness)and also have a higher saturation (e.g., a strong saturation) inresponse to the selection of the deep color palette.

Furthermore, the procedural texture modification system 106 can receivea selection of a dark color palette as the color property preference. Inparticular, the procedural texture modification system 106 can affectthe extraction of colors from a digital image to prefer colors that aredarker (e.g., having a weak and/or a lesser brightness.

As shown in FIG. 3, the procedural texture modification system 106 canload an input image and can perform a conversion into a L*a*b space inthe act 302. In particular, the procedural texture modification system106 can transcribe pixels of the input image into a color space tocreate a representation of colors (e.g., colorimetric parameters)present in the input image. For instance, the procedural texturemodification system 106 can utilize the color space CIELAB L*a*b CIE1976 (“CIELAB color space”) to create a representation of colors presentin the input image.

Indeed, by transcribing the pixels of the input image into the CIELABcolor space, the procedural texture modification system 106 can providea representation of colors present in the input image in a space thatenables the analysis of color differences perceptual by the human eyefrom the resulting color parameters of each pixel. For instance, thecolor space can include values representing changes in lightness andchanges in one or more color channels for pixels of the input image.Moreover, by loading the input image conversion in the CIELAB colorspace, the procedural texture modification system 106 can perform linearoperations on the colors (e.g., color parameters) of the input image(e.g., in accordance with the human perception of colors).

Furthermore, as shown in FIG. 3, the procedural texture modificationsystem 106 can quantify pixels of the input image into colorcompartments in the act 304. In particular, the procedural texturemodification system 106 can quantify pixels in the color space (e.g.,the CIELAB color space) to distribute them into color compartments basedon a three-dimensional grid (e.g., with the colorimetric parameterscorresponding to the pixels in the L*a*b* space). Additionally, theprocedural texture modification system 106 can determine one or morecolor compartments for the input image from the pixels in thethree-dimensional grid and calculate a pixel average (e.g., a coloraverage) for the color compartments.

As an example, the procedural texture modification system 106 candetermine one or more color compartments for the input image based onthe pixels (with colorimetric parameters) in the three-dimensional grid.For instance, the procedural texture modification system 106 can groupone or more pixels from the three-dimensional grid into one or morecolor compartments. For example, the procedural texture modificationsystem 106 can group one or more pixels that are near in distance (e.g.,based on color similarity), near in space within the three-dimensionalgrid, and/or group the pixels by separating the pixels in thethree-dimensional grid into a number of equal pixels (e.g., a specificnumber of pixels per color compartment).

Additionally, as an example, the procedural texture modification system106 can adjust the size of color compartments (e.g., the number ofpixels belonging to the color compartments) and/or the number of colorcompartments utilized based on the selected color property preference.As an example, the procedural texture modification system 106 canincrease the number of color compartments utilized when the bright colorpalette is selected compared to other color palette options. Indeed, theprocedural texture modification system 106 can adjust the size and/ornumber of color compartments in a number of ways based on the colorproperty preference.

Furthermore, the procedural texture modification system 106 cancalculate a pixel average for a color compartment. For example, theprocedural texture modification system 106 can calculate an averagecolor (e.g., an average colorimetric parameter) belonging to a colorcompartment based on the pixels associated with the color compartment(e.g., determine the color that is represented by the colorcompartment). Indeed, in some embodiments, the procedural texturemodification system 106 calculates an average color for each of thecolor compartments of the input image.

Additionally, as shown in FIG. 3, the procedural texture modificationsystem 106 can assign weights to the color compartments in the act 306.In particular, the procedural texture modification system 106 caninitialize a weight for a color compartment according to therepresentativeness of the color compartment (e.g., amongst the colorcompartments of the input image). Moreover, procedural texturemodification system 106 can normalize the weight of the colorcompartment. In addition, the procedural texture modification system 106can also apply a factor, according to the selected color propertypreference, to the initialized weight to change how much affect therepresentativeness of the color compartment has on the initial weightfor the color compartment. Indeed, the procedural texture modificationsystem 106 can initialize weights for each color compartment of theinput image.

As just mentioned, the procedural texture modification system 106 caninitialize a weight for a color compartment according to therepresentativeness of the color compartment. As an example, theprocedural texture modification system 106 can determine the number ofpixels belonging to a color compartment to initialize the weight for thecolor compartment. In particular, the procedural texture modificationsystem 106 can initialize the weight for the color compartment bydividing the number of pixels belonging to the color compartment by thetotal number of pixels of the input image. Indeed, the proceduraltexture modification system 106 can initialize a weight for each colorcompartment according to the representativeness of each colorcompartment in accordance with one or more embodiments herein.

Alternatively, as an example, the procedural texture modification system106 can initialize a weight for a color compartment according to therepresentativeness of the color compartment by determining the number ofother color compartments belonging to the input image that are similarto the color compartment being weighted. For instance, the proceduraltexture modification system 106 can determine a distance value based ona color similarity (e.g., between the average color of two colorcompartments) between each of the color compartments belonging to theinput image and the color compartment being weighted. Indeed, theprocedural texture modification system 106 can use a CIELAB Delta E 2000calculation to determine the distance values between the colorcompartments. Furthermore, as an example, the procedural texturemodification system 106 can count the number of color compartments thatmeet a threshold distance value to determine the number of other colorcompartments belonging to the input image that are similar to the colorcompartment being weighted. Moreover, the procedural texturemodification system 106 can initialize the weight for the colorcompartment by dividing the number of similar color compartments to thetotal number of color compartments of the input image.

For instance, the procedural texture modification system 106 canrepresent an initial weight for a color compartment as w_(i).Furthermore, the procedural texture modification system 106 canrepresent the number of pixels belonging to the color compartment asn_(i) and the total number of pixels of the input image as N.Alternatively, the procedural texture modification system 106 canrepresent the number of similar color compartments to the colorcompartment being weighted as n_(i) and the total number of colorcompartments of the input image as N. Moreover, the procedural texturemodification system 106 can define an initial weight for a colorcompartment according to the representativeness of the color compartmentin accordance with the following:

$w_{i} = \frac{n_{i}}{N}$

Furthermore, the procedural texture modification system 106 cannormalize the initial weights of the color compartments afterdetermining the initial weights. In particular, the procedural texturemodification system 106 can normalize an initial weight of a colorcompartment according to the highest initial weight available from thecolor compartments of the input image. Furthermore, the proceduraltexture modification system 106 can also apply a factor (e.g., aconstant value corresponding to a color property preference) to thenormalized initial weights. Indeed, the procedural texture modificationsystem 106 can utilize the factor to change the affect thatrepresentativeness of the color compartments has on the initial weights.In particular, the procedural texture modification system 106 canutilize more or less affect from the representativeness of the colorcompartments on the initial weight based on the selected color propertypreference (e.g., the selected color palette type). Indeed, theprocedural texture modification system can normalize an initial weightfor each color component in accordance with one or more embodimentsherein.

For example, the procedural texture modification system 106 canrepresent the maximum initial weight (e.g., highest initial weight)available from the color compartments as w_(max) and the factor based onthe color property preference as r (e.g., a constant value thatinfluences the effect of representativeness of a color compartment onthe initial weight). Indeed, the procedural texture modification system106 can utilize a larger r value for the representative color palettecompared to the bright color palette selection. Indeed, the proceduraltexture modification system 106 can configure the value of r in avariety of ways based on the selected color palette type. Moreover, theprocedural texture modification system 106 can define a normalized andfactored initial weight for a color compartment (as the assigned weightfor the color compartment) according to the representativeness of thecolor compartment in accordance with the following:

$w_{i} = \left( \frac{w_{i}}{w_{\max}} \right)^{r}$

Furthermore, as illustrated in FIG. 3, the procedural texturemodification system 106 can alter weights according to a color propertypreference in the act 308. In particular, the procedural texturemodification system 106 can alter initial weights of color compartments(e.g., initial weights assigned as described above) based on a selectedcolor property preference (e.g., a selected color palette type). Indeed,the procedural texture modification system 106 can alter the initialweights corresponding to the color compartments by applying a colorproperty preference value (e.g., a color property factor) to the initialweights.

For example, the procedural texture modification system 106 canrepresent a color property preference value as w_(c). Moreover, thevalue of w_(c) can correspond to a value based on a formula (oralgorithm) corresponding to a color palette type (as described ingreater detail below). Furthermore, the procedural texture modificationsystem 106 can tie w_(c) to (epsilon, 1) so that w_(c) does not nullifya weight associated with a color compartment. Indeed, in one or moreembodiments, the procedural texture modification system 106 alters anassigned initial weight for a color compartment to determine a weightfor the color compartment (e.g., w) in accordance with the following:w=w _(i) ×w _(c) ²

Furthermore, the procedural texture modification system 106 candetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments. For instance, the procedural texturemodification system 106 can determine a color property preference value(e.g., w_(c)) for individual color palette types. Indeed, the proceduraltexture modification system 106 can utilize one or more colorimetricparameters corresponding to the color compartments (e.g., the averagedcolor settings based on the CIELAB color space values) to determine thecolor property preference value.

For example, the procedural texture modification system 106 candetermine an excitation purity value (e.g., Pe) for a color compartment(or an average color belonging to the color compartment). In particular,the excitation purity value can represent how, in the chromatic diagramof the CIELAB color space, a color moves away from the achromatic centerof the diagram to approximate the colors dominant wavelength (e.g., λ).In other words, the excitation purity value can represent the dominantwavelength (e.g., λ) of an average color belonging to the colorcompartment within a chromaticity diagram associated with the CIELABcolor space. For example, the procedural texture modification system 106can define the excitation purity value of a color in the CIELAB colorspace (e.g., where a and b can represent the difference between achromaticity of a white point for the hue of the color and the colorpoint and a_(λ)+b_(λ) can represent the difference between thechromaticity of the white point for the hue of the color and a point onthe perimeter of the chromaticity diagram whose line segment to thewhite point contains the chromaticity point of the color), in accordancewith the following:

${Pe} = \frac{\left( {a + b} \right)}{\left( {a_{\lambda} + b_{\lambda}} \right)}$

In one or more embodiments, the procedural texture modification system106 determines a color property preference value (e.g., w_(c)) to alterweights of color compartments for the representative color palette type.In particular, the procedural texture modification system 106 canprovide a slight bias to pure colors (e.g., because the human eye tendsto perceive pure colors). For instance, the procedural texturemodification system 106 can determine the color property preferencevalue for the representative color palette type (e.g., R) for a colorfrom a color compartment by utilizing an excitation purity valuecorresponding to the color from the color compartment. Indeed, theprocedural texture modification system 106 can utilize the colorproperty preference value for the representative color palette type(e.g., R) corresponding to the color compartment as w_(c) to alterweights of the color compartment (as described above). For example, theprocedural texture modification system 106 can define the color propertypreference value for the representative color palette type (e.g., R) fora color from a color compartment (e.g., using the colors excitationpurity value, Pe) in accordance with the following:R=√{square root over (0.2+0.8Pe)}

Furthermore, the procedural texture modification system 106 candetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments for the pure color palette type. Forinstance, the procedural texture modification system 106 can determinethe color property preference value for the pure color palette type(e.g., P) for a color from a color compartment by using an excitationpurity value corresponding to the color from the color compartment asthe color property preference value for the pure color palette type.Indeed, the procedural texture modification system 106 can utilize thecolor property preference value for the pure color palette type (e.g.,P) corresponding to the color compartment as w_(c) to alter weights ofthe color compartment (as described above). For example, the proceduraltexture modification system 106 can define the color property preferencevalue for the pure color palette type (e.g., P) for a color from a colorcompartment (e.g., using the colors excitation purity value, Pe) inaccordance with the following:P=Pe

Additionally, the procedural texture modification system 106 can alsodetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments for the bright color palette type. Forinstance, the procedural texture modification system 106 can determinethe color property preference value for the bright color palette type(e.g., B) for a color from a color compartment by adding a bias on thebrightness (e.g., L) in addition to the excitation purity (e.g., Pe) ofthe color from the color compartment in comparison to the dominant wavelength (e.g., L_(λ)) of the color. Indeed, the procedural texturemodification system 106 can utilize the color property preference valuefor the bright color palette type (e.g., B) corresponding to the colorcompartment as w_(c) to alter weights of the color compartment (asdescribed above). For example, the procedural texture modificationsystem 106 can define the color property preference value for the brightcolor palette type (e.g., B) for a color from a color compartment inaccordance with the following:B=L×Pe×(1−√{square root over (L−L _(λ))})

Moreover, the procedural texture modification system 106 can alsodetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments for the pastel color palette type. Forinstance, the procedural texture modification system 106 can determinethe color property preference value for the pastel color palette type(e.g., Pa) for a color from a color compartment by adding a bias on thebrightness (e.g., 1) and desaturation (e.g., s) of the color from thecolor compartment in the HSV space (e.g., hue, saturation, value space).Indeed, the procedural texture modification system 106 can utilize thecolor property preference value for the pastel color palette type (e.g.,Pa) corresponding to the color compartment as w_(c) to alter weights ofthe color compartment (as described above). For example, the proceduraltexture modification system 106 can define the color property preferencevalue for the pastel color palette type (e.g., Pa) for a color from acolor compartment in the HSV space (e.g., V represents an intensity ofthe color in the HSV space and S represents an amount of saturation forthe color in the HSV space) in accordance with the following:

l = 2.2  V − 1.2$s = {\sin\left( {\frac{3\;\pi}{4}\left( {1 - {0.95S}} \right)} \right)}$P a = ls²

Additionally, the procedural texture modification system 106 can alsodetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments for the deep color palette type. Forinstance, the procedural texture modification system 106 can determinethe color property preference value for the deep color palette type(e.g., De) for a color from a color compartment by utilizing thebrightness (e.g., L) and excitation of purity value (e.g., Pe) of thecolor from the color compartment to promote saturated and dark colors.Indeed, the procedural texture modification system 106 can utilize thecolor property preference value for the deep color palette type (e.g.,De) corresponding to the color compartment as w_(c) to alter weights ofthe color compartment (as described above). For example, the proceduraltexture modification system 106 can define the color property preferencevalue for the deep color palette type (e.g., De) for a color from acolor in accordance with the following:De=√{square root over (Pe)}(1−L)²

Furthermore, the procedural texture modification system 106 can alsodetermine a color property preference value (e.g., w_(c)) to alterweights of color compartments for the dark color palette type. Forinstance, the procedural texture modification system 106 can determinethe color property preference value for the dark color palette type(e.g., Da) for a color from a color compartment by utilizing thebrightness (e.g., L) of the color from the color compartment to promotedark colors. Indeed, the procedural texture modification system 106 canutilize the color property preference value for the dark color palettetype (e.g., Da) corresponding to the color compartment as w_(c) to alterweights of the color compartment (as described above). For example, theprocedural texture modification system 106 can define the color propertypreference value for the dark color palette type (e.g., Da) for a colorfrom a color in accordance with the following:Da=|1−1.2L| ²

In addition, as shown in FIG. 3, the procedural texture modificationsystem 106 can select a color based on a max weight in the act 310. Inparticular, the procedural texture modification system 106 can identifya max weight from the weights corresponding to the color compartments ofthe input image by identifying a weight having the highest numericalvalue in comparison to other weights corresponding to the colorcompartments. Indeed, the procedural texture modification system 106 canselect the average color value from a color compartment corresponding tothe max weight (e.g., the highest weight amongst the weights of thecolor compartments) for a color palette.

Furthermore, as shown in FIG. 3, the procedural texture modificationsystem 106 can determine whether the procedural texture modificationsystem 106 has selected N colors (e.g., a number of colors specified bya user and/or set by the procedural texture modification system 106) inthe act 310 after selecting a color corresponding to a color compartmenthaving a max weight. For example, as shown in FIG. 3, if the proceduraltexture modification system 106 has not selected N colors for a colorpalette, the procedural texture modification system 106 can alterweights (of the color compartments) according to a distance between thepreviously selected color and the color compartments in the act 314.Indeed, the procedural texture modification system 106 alters theweights in the act 314 to exclude neighboring colors of a previouslyselected color (e.g., to avoid selecting and/or repetition of similarcolors for a color palette).

For example, the procedural texture modification system 106 candetermine distances between the selected color and the average colorscorresponding to the color compartments of the input image utilizing aCIELAB Delta E 2000 function. In particular, the CIELAB Delta E 2000function determines a quantified value for similarities (and/ordifferences) between colors (e.g., colorimetric parameters). Forexample, the procedural texture modification system 106 can determine adistance (D_(i)) between a color compartment and a selected color in acolor space (e.g., for a color compartment of the input image for eachcolor compartment i).

Additionally, the procedural texture modification system 106 can producea fall off around the selected color such that only the weights of colorcompartments that exist within a certain radius around the selectedcolor (e.g., in terms of distance) are affected (e.g., in proportion tothe distance between each color compartment and the selected color).Moreover, the procedural texture modification system 106 can preventaltering the weights of color compartments with distance values that areoutside of the radius around the selected color (e.g., colorcompartments that are determined to be outside of the fall off aroundthe selected color).

Furthermore, the procedural texture modification system 106 can alsoutilize the selected color property preference to adjust the influenceof the distance between the average colors of the color compartments andthe selected color when altering the weights. For instance, theprocedural texture modification system 106 can utilize a constant value(e.g.,f) with the CIELAB Delta E 2000 function to adjust the influenceof the distance between the average colors of the color compartments andthe selected color. Indeed, the procedural texture modification system106 can set the constant value f based on the selected color propertypreference.

For example, the procedural texture modification system 106 can definethe distance between an average color of a color compartment and aselected color (e.g., a quantified measure of how much to influence theweight of a color compartment based on a fall off radius around theselected color, a constant value f, and also proportional to thedistance, D_(i), between the color compartment and the selected color)in accordance with the following:

${wd}_{i} = \frac{{\cos\left( {\min\left( {\pi,\frac{\pi\; D_{i}}{f}} \right)} \right)} + 1}{2}$

Moreover, the procedural texture modification system 106 can alter theweights (e.g., w_(i)) of color compartments based on the determineddistance between the average color of the color compartments and theselected color (e.g., wd_(i)). For instance, the procedural texturemodification system 106 can alter the weight (e.g., to generate anadditional weight) of a color compartment (e.g., w_(i)) using thedistance between the average color of the color compartments and theselected color (e.g., wd_(i)) in accordance with the following:w _(i) =w _(i)×(1−wd _(i))

Indeed, as an example, the procedural texture modification system 106can nullify the weight of the color compartment of the selected colorbecause the distance (D_(i)) between the color compartment of theselected color and itself is 0 (e.g., wd_(i) will equal 1 and thereforew_(i) will equal 0). Furthermore, as an example, the procedural texturemodification system 106 will influence the weight (w_(i)) of colorcompartments that are within a certain radius of the selected color(e.g., in terms of distance) by reducing the weight w_(i) of the colorcompartment (e.g., wd_(i) will be in between 0 and 1 and therefore w_(i)will multiplied by a value between 0 and 1). Moreover, as an example,the procedural texture modification system 106 will not alter the weight(w_(i)) of color compartments that are outside a certain radius of theselected color (e.g., wd_(i) will equal 1 and therefore w_(i) willmultiplied by a value of 1).

In addition (or in the alternative), in some embodiments, the proceduraltexture modification system 106 excludes one or more color compartmentsbased on the determined distance between the average color of the colorcompartments and the selected color. For instance, the proceduraltexture modification system 106 can utilize a fall off distance valuethreshold to exclude one or more color compartments. In particular, theprocedural texture modification system 106 can remove one or more colorcompartments (e.g., for use in selecting colors for a subsequent colorfor the color palette) that have a distance value between the averagecolor of the color compartments and the selected color that meets thefall off distance value threshold (e.g., the distance value is lowenough to demonstrate that the color compartments have colors that aretoo similar to the selected color).

Moreover, as shown in FIG. 3, the procedural texture modification system106 can utilize the altered weights (corresponding to the colorcompartments) according to the distances between the previously selectedcolor and the color compartments of act 314 to select a subsequent colorfor the color palette. In particular, the procedural texturemodification system 106 can identify a max weight from the re-alteredweights based on the distance values (of act 314) corresponding to thecolor compartments. Indeed, the procedural texture modification system106 can select the average color value from a color compartmentcorresponding to the max weight (e.g., the highest weight amongst theadditional weights of the color compartments) for the color palette.Moreover, the procedural texture modification system 106 can iterativelyselect colors based on max weights of color compartments, alter theweights of the color compartments based on distances between the priorselected color and average colors of the color compartments, and selecta subsequent color based on the re-altered weights (in accordance withone or more embodiments herein) until the procedural texturemodification system 106 selects N colors.

Furthermore, as shown in FIG. 3, upon selecting N colors (in the act310), the procedural texture modification system 106 can utilize theselected N colors to generate a color palette in the act 312. Indeed, inone or more embodiments, the procedural texture modification system 106utilizes the selected N colors as the colors belonging to the colorpalette. Additionally, the procedural texture modification system 106can generate the color palette by scheduling the selected N colors(e.g., ordering the colors in an ordered list of colors).

For instance, the procedural texture modification system 106 can performcolor scheduling to generate the color palette (in the act 312) based onthe representativeness of the selected N colors. In particular, theprocedural texture modification system 106 can determine which pixels ofthe input image are represented by each of the selected N colors. Forexample, the procedural texture modification system 106 can utilize theCIELAB Delta E 2000 function to determine distance values between colorsfrom the selected N colors and the colorimetric parameters correspondingto each pixel of the input image. Moreover, the procedural texturemodification system 106 can associate the pixels having a similar colorvalue (e.g., neighboring pixels based on color attributes) with theselected color.

Furthermore, the procedural texture modification system 106 candetermine and associate pixels having similar color values with each ofthe selected N colors. For example, the procedural texture modificationsystem 106 can identify, using the distance values between the colorsand the pixels, the closest color from the selected N colors to a pixeland associate the pixel to the identified closest color. Additionally,the procedural texture modification system 106 can determine the numberof pixels associated with each of the selected N colors. Moreover, theprocedural texture modification system 106 can perform color schedulingto generate the color palette (in the act 312) based on therepresentativeness of the selected N colors by ordering the selected Ncolors based on how many pixels are associated with each of the selectedN colors. As an example, the procedural texture modification system 106can order the selected N colors from the color having the most pixels tothe color having the least pixels and utilize the ordered list of theselected N colors as the color palette (in the act 312).

In addition (or in the alternative), in one or more embodiments, theprocedural texture modification system 106 utilizes a threshold distancevalue to determine which pixels to associate with the selected color.For example, the procedural texture modification system 106 canassociate a pixel with the selected color when the determined distancebetween the colorimetric parameters of a pixel and the selected colormeet the threshold distance value (e.g., pixels having colorimetricparameters that are closer to the selected color). Furthermore, in someembodiments, the procedural texture modification system 106 associatespixels to more than one selected N colors based on the thresholddistance values. Indeed, the procedural texture modification system 106can determine the number of pixels associated with each of the selectedN colors based on the threshold distance values to perform colorscheduling based on color representativeness to generate the colorpalette.

Furthermore, the procedural texture modification system 106 can performcolor scheduling to generate the color palette (in the act 312) based ona color space characteristic (e.g., the HSV color space). In particular,the procedural texture modification system 106 can determine and/oridentify color space characteristics corresponding to the selected Ncolors and perform color scheduling by ordering the selected N colorsbased on the identified color space characteristics. For example, theprocedural texture modification system 106 can identify hue valuesand/or hue characteristics (e.g., a value between 0 degrees and 360degrees) of the selected N colors as the color space characteristics.Moreover, as an example, the procedural texture modification system 106can order the selected N colors based on the hue values (e.g., greatestto least and/or least to greatest values) and utilize the ordered listof the selected N colors as the color palette in the act 312 (e.g.,ordered based on hue of the colors).

Additionally, the procedural texture modification system 106 can alsoutilize other color space characteristics to perform color scheduling togenerate the color palette (in the act 312). For example, the proceduraltexture modification system 106 can identify intensity values (e.g.,brightness characteristics) and/or saturation values of the selected Ncolors as the color space characteristics. As an example, the proceduraltexture modification system 106 can order the selected N colors based onthe brightness values and/or brightness characteristics (e.g., greatestto least and/or least to greatest) and utilize the ordered list of theselected N colors as the color palette in the act 312 (e.g., orderedbased on brightness of the colors). In some embodiments, the proceduraltexture modification system 106 utilizes brightness characteristics toschedule the selected N colors when the hue values of the selected Ncolors are near in value.

In some embodiments, the procedural texture modification system 106 canperform color scheduling to generate the color palette (in the act 312)based on an order of discovery. In particular, the procedural texturemodification system 106 can utilize the order in which the selected Ncolors were extracted from the input image in accordance with one ormore embodiments herein as the order in which the selected N are used inthe generated color palette (in the act 312).

Indeed, upon scheduling the selected N colors in accordance with one ormore embodiments herein, the procedural texture modification system 106can generate the color palette in act 312. Furthermore, the proceduraltexture modification system 106 can display the color palette in a userinterface. Additionally, the procedural texture modification system 106can display the color palette such that the colors of the color paletteare displayed within the user interface (e.g., a colorized visualrepresentation of the color palette). Moreover, the procedural texturemodification system 106 can provide and/or display the CIELAB, RGBvalues, and/or hexadecimal color values of the colors from the colorpalette in the user interface.

FIG. 4 illustrates an example of a plurality of color palettes 404-414generated from an image 402 according to six varying color propertypreferences (e.g., color palette types). For example, as shown in FIG.4, the procedural texture modification system 106 can generate anddisplay a representative color palette 404 for the image 402 (e.g.,based on a representative color palette type selection). Furthermore, asillustrated in FIG. 4, the procedural texture modification system 106can generate and display a colorful color palette 406 for the image 402(e.g., based on a pure color palette type selection). Moreover, as shownin FIG. 4, the procedural texture modification system 106 can generateand display a bright color palette 408 for the image 402 (e.g., based ona bright color palette type selection). Furthermore, as shown in FIG. 4,the procedural texture modification system 106 can generate and displaya pastel color palette 410 for the image 402 (e.g., based on a pastelcolor palette type selection). Additionally, as illustrated in FIG. 4,the procedural texture modification system 106 can generate and displaya deep color palette 412 for the image 402 (e.g., based on a deep colorpalette type selection). Moreover, as shown in FIG. 4, the proceduraltexture modification system 106 can generate and display a dark colorpalette 414 for the image 402 (e.g., based on a dark color palette typeselection).

Furthermore, as mentioned above, the procedural texture modificationsystem 106 can generate color palettes using different sets of colorsthat are visually perceptible (e.g., colors that are highlyrepresentative of what the human eye can generally observe andappreciate) in an image according to a color property preference.Indeed, as illustrated in FIGS. 5A-5F, the procedural texturemodification system 106 can generate color palettes having differentcolors from in image based on a color palette type. Although FIGS. 5A-5Fare presented in grey scale, FIGS. 5A-5F illustrate pointers tolocations of a color in an image and the RGB values of those colors todemonstrate the colors of the color palettes.

For instance, as illustrated in FIG. 5A, the procedural texturemodification system 106 can generate and display a representative colorpalette 404 for the image 402 (e.g., based on a representative colorpalette type selection) that extracts one or more colors based on theirrepresentativeness of the image 402 in accordance with one or moreembodiments herein.

Furthermore, as shown in FIG. 5B, the procedural texture modificationsystem 106 can generate and display a colorful color palette 406 for theimage 402 (e.g., based on a pure color palette type selection) thatextracts one or more colors based on their excitation of purity value inaccordance with one or more embodiments herein.

Additionally, as illustrated in FIG. 5C, the procedural texturemodification system 106 can generate and display a bright color palette408 for the image 402 (e.g., based on a bright color palette typeselection) that extracts one or more colors based on their brightness inaccordance with one or more embodiments herein.

Moreover, as shown in FIG. 5D, the procedural texture modificationsystem 106 can generate and display a pastel color palette 410 for theimage 402 (e.g., based on a pastel color palette type selection) thatextracts one or more colors based on their saturation and brightness inaccordance with one or more embodiments herein.

Furthermore, as illustrated in FIG. 5E, the procedural texturemodification system 106 can generate and display a deep color palette412 for the image 402 (e.g., based on a deep color palette typeselection) that extracts one or more colors based on their saturationand brightness (e.g., lack of brightness) in accordance with one or moreembodiments herein.

Additionally, as shown in FIG. 5F, the procedural texture modificationsystem 106 can generate and display a dark color palette 414 for theimage 402 (e.g., based on a dark color palette type selection) thatextracts one or more colors based on their brightness (e.g., lack ofbrightness) in accordance with one or more embodiments herein.

As mentioned above, the procedural texture modification system 106 canapply one or more colors of a color palette to a target proceduraltexture. For example, FIG. 6 illustrates a flow chart of the proceduraltexture modification system 106 applying one or more colors of a colorpalette to a target procedural texture. In particular, FIG. 6illustrates the procedural texture modification system 106 receiving aselection of a color application mode (in an act 602). Indeed, as shownin FIG. 6, the procedural texture modification system 106 can receive aselection of two color application modes (e.g., a single colorapplication mode in an act 604 and a plurality of colors applicationmode in act 610). Indeed, the procedural texture modification system 106can enable a user to select any of the application modes at any time andutilize a color palette (e.g., a color palette generated in accordancewith one or more embodiments herein) to modify a texture according tothe application mode. Furthermore, the procedural texture modificationsystem 106 can default to and/or determine a color application modewithout a user selection.

For instance, in response to the selection of a single color applicationmode (in an act 604), FIG. 6 illustrates the procedural texturemodification system 106 receiving a selection of a color from a colorpalette (in an act 606) and applying the color to a target proceduraltexture (in an act 608). For instance, the procedural texturemodification system 106 can display a color palette in a user interfaceand enable a user to select a color from the color palette. Furthermore,although FIG. 6 illustrates the procedural texture modification system106 receiving a selection of a color from a color palette in the act606, the procedural texture modification system 106 can apply each colorof the color palette to a target procedural texture to generate multiplevariations of the target procedural texture (e.g., each variationcorresponding to a color of the color palette).

Additionally, as shown in FIG. 6, the procedural texture modificationsystem 106 can apply a color to the target procedural texture in the act608 (e.g., in a single color application mode). For instance, theprocedural texture modification system 106 can apply a color from thecolor palette (e.g., a color palette generated from an input image inaccordance with one or more embodiments herein) to change a color for anentire surface of the target procedural texture to modify the targetprocedural texture. In particular, the procedural texture modificationsystem 106 can apply a color from the color palette (e.g., acolorimetric parameter associated with the color from the color palette)to modify the colorimetric parameters of the target procedural textureto resemble the color from the color palette.

Furthermore, the procedural texture modification system 106 can applythe color from the color palette to the entire surface of the targetprocedural texture while preserving other characteristics of the targetprocedural texture. For instance, the procedural texture modificationsystem 106 can apply the color from the color palette to the targetprocedural texture without changing other characteristics of the targetprocedural texture such as, but not limited to, material properties(e.g., attributes associated with the type of material such as metallic,plastic, fabric, etc.), finish properties, structure properties, and/orhighlight properties of the target procedural texture.

Moreover, in response to the selection of a plurality of colorsapplication mode (in an act 610), as illustrated in FIG. 6, theprocedural texture modification system 106 can identify one or moretexture color parameters of the target procedural texture (in an act612) and applying colors from a color palette to one or more texturecolor parameters of the target procedural texture (in an act 614). Inparticular, the procedural texture modification system 106 can apply oneor more colors of a color palette to one or more distinctive colors of atarget procedural texture. Indeed, the procedural texture modificationsystem 106 can identify colors (e.g., distinctive colors) of the targetprocedural texture based on one or more texture color parameters of thetarget procedural texture (e.g., colorimetric parameters of the targetprocedural texture). Furthermore, the procedural texture modificationsystem 106 can identify any number of colors from the target proceduraltexture. In some embodiments, the procedural texture modification system106 identifies a number of colors (e.g., texture color parameters) fromthe target procedural texture that is equivalent to the number of colorsavailable in a color palette being applied to the target proceduraltexture.

As shown in FIG. 6, the procedural texture modification system 106 canidentify one or more texture color parameters of a target proceduraltexture in the act 612. For example, the procedural texture modificationsystem 106 can identify one or more texture color parameters bygenerating a color palette for the texture in accordance with one ormore embodiments above. In particular, as an example, the proceduraltexture modification system 106 can load a target procedural textureconversion in a CIELAB color space, quantify the pixels of the targetprocedural texture into color compartments, assign weights to the colorcompartments, alter weights according to a color property preference,and/or select colors for the target procedural texture based on weightsof the color compartments. Furthermore, as an example, the proceduraltexture modification system 106 can additionally select subsequentcolors for the target procedural texture based on distances betweenpreviously selected colors and the color compartments.

Moreover, the procedural texture modification system 106 can identifyone or more texture color parameters based on user (and/or system)defined settings for a target procedural texture. In particular,procedural texture modification system 106 can identify settingsincluded with the target procedural texture (e.g., settings createdduring the creation of the texture) that define a set of texture colorparameters to utilize during a modification step. For instance, theprocedural texture modification system 106 can identify settingsincluded with the target procedural texture that define a set ofdistinctive texture color parameters and/or zones (or pixels) in thetarget procedural texture that correspond to those distinctive texturecolor parameters.

Additionally, as shown in FIG. 6, upon identifying one or more texturecolor parameters of a target procedural texture, the procedural texturemodification system 106 can apply colors from a color palette to one ormore texture color parameters of the target procedural texture (in theact 614). In particular, the procedural texture modification system 106can pair (and/or map) one or more colors from a color palette to one ormore texture color parameters. Furthermore, the procedural texturemodification system 106 can apply the colors from the color palette tothe texture color parameters according to the pairing.

For example, the procedural texture modification system 106 can pair oneor more colors from a color palette to one or more texture colorparameters based on representativeness. For instance, the proceduraltexture modification system 106 can perform color scheduling on the oneor more texture color parameters to generate an ordered list of texturecolor parameters based on representativeness of the texture colorparameters (e.g., as described above in relation to scheduling colorsfor a color palette). Indeed, the procedural texture modification system106 can determine which pixels (and/or zones) of a texture arerepresented by each of the distinctive texture color parametersidentified from a texture based on distances between the pixels (and/orzones) and the distinctive texture color parameters. Furthermore, theprocedural texture modification system 106 can generate the ordered listby ordering the texture color parameters based on the representativenessof the texture color parameters by ordering the texture color parametersbased on how many pixels (and/or zones) are associated with each of thetexture color parameters. Then, the procedural texture modificationsystem 106 can pair the ordered list of the texture color parameters tocolors from a color palette (e.g., a color palette scheduled based onrepresentativeness).

Furthermore, as an example, the procedural texture modification system106 can pair one or more colors from a color palette to one or moretexture color parameters based on color space characteristics. Forinstance, the procedural texture modification system 106 can performcolor scheduling on the one or more texture color parameters to generatean ordered list of texture color parameters based on color spacecharacteristics corresponding to the texture color parameters (e.g., asdescribed above in relation to scheduling colors for a color palette).In particular, the procedural texture modification system 106 candetermine and/or identify color space characteristics corresponding tothe identified texture color parameters (e.g., hue values, brightnessvalues, saturation values, etc.). Furthermore, the procedural texturemodification system 106 can generate the ordered list by ordering thetexture color parameters based on the identified color spacecharacteristics.

As an example, the procedural texture modification system 106 canidentify hue values and/or hue characteristics (e.g., a value between 0degrees and 360 degrees) of the texture color parameters and order thetexture color parameters according to those hue characteristics (e.g.,greatest to least and/or least to greatest values) to generate theordered list of texture color parameters. Moreover, the proceduraltexture modification system 106 can order the texture color parametersbased on brightness values and/or brightness characteristics (e.g.,greatest to least and/or least to greatest) and utilize the ordered listof the texture color parameters as the ordered list of texture colorparameters. Then, the procedural texture modification system 106 canpair the ordered list of the texture color parameters to colors from acolor palette (e.g., a color palette scheduled based on color spacecharacteristics).

Additionally, as an example, the procedural texture modification system106 can pair one or more colors from a color palette to one or moretexture color parameters based on user (or system) specified settings.For example, the procedural texture modification system 106 can identifysettings included with the target procedural texture (e.g., settingscreated during the creation of the texture) that define an order inwhich to pair texture color parameters to color palettes. For instance,the procedural texture modification system 106 can identify settingsincluded with the target procedural texture that define an ordered listof distinctive texture color parameters and/or zones (or pixels) in thetarget procedural texture that correspond to those distinctive texturecolor parameters. Then, the procedural texture modification system 106can pair the ordered list of the texture color parameters to colors froma color palette (e.g., a scheduled color palette).

Moreover, as an example, the procedural texture modification system 106can pair one or more colors from a color palette to one or more texturecolor parameters based on an order of discovery. In particular, theprocedural texture modification system 106 can utilize the order inwhich the distinctive texture color parameters were identified from thetarget procedural texture in accordance with one or more embodimentsherein to generate an ordered list of texture color parameters. Then,the procedural texture modification system 106 can pair the ordered listof the texture color parameters to colors from a color palette (e.g., acolor palette scheduled based on an order of discovery).

Additionally, as an example, the procedural texture modification system106 can pair one or more colors from a color palette to one or moretexture color parameters based on distances between the colors and thetexture color parameters. For instance, the procedural texturemodification system 106 can determine distance values between each ofthe colors from the color palette to each of the identified texturecolor parameters perform (e.g., using a CIELAB Delta E 2000 calculationbetween the colors and the texture color parameters). Then, theprocedural texture modification system 106 can pair the colors to thetexture color parameters by identifying the texture color parameters andcolor combinations with the lowest distance values (e.g., the mostsimilar).

Furthermore, as an example, the procedural texture modification system106 can pair one or more colors from a color palette to one or moretexture color parameters based on manual intervention of a user. Forinstance, the procedural texture modification system 106 can display agenerated color palette for an input image and/or a generated colorpalette for a target procedural texture. Furthermore, the proceduraltexture modification system 106 can enable a user to pair one or morecolors from the displayed color palette for the input image and one ormore texture color parameters from the displayed color palette for atarget procedural texture. Indeed, the procedural texture modificationsystem 106 can display a colorized visual representation for the one ormore texture color parameters (e.g., as the displayed color palette forthe target procedural texture). Then, the procedural texturemodification system 106 can pair the texture color parameters to thecolors from the color palette according to the user selections.

Although, in one or more examples described above, the proceduraltexture modification system 106 pairs colors from a color palette totexture color parameters of a target procedural texture according to anorder based on the same type of ordering (e.g., based onrepresentativeness, color space characteristics, etc.), the proceduraltexture modification system 106 can utilize any combination of orderingapproaches to pair the colors to the texture color parameters. Forinstance, the procedural texture modification system 106 can order thecolor palette according to a color space characteristic and order thetexture color parameters according to representativeness. Then, theprocedural texture modification system 106 can pair the texture colorparameters to the colors from the color palette according to suchordering using different combinations of ordering approaches.

Furthermore, the procedural texture modification system 106 can pair oneor more colors from a color palette to one or more texture colorparameters when the colors from the color palette include a differentamount of colors compared to the texture color parameters identifiedfrom a target procedural texture. For instance, the procedural texturemodification system 106 can pair the first occurring colors (e.g., froma scheduled color palette) to the first occurring texture colorparameters (e.g., from an ordered list of texture color parameters)until no more colors and/or texture color parameters are available topair.

Indeed, as mentioned above, the procedural texture modification system106 can apply one or more colors from a color palette to a targetprocedural texture. For example, the procedural texture modificationsystem 106 can apply a color from a color palette to one or more areascorresponding to a distinct color of a target procedural texture (e.g.,to conserve the color diversity of the target procedural texture as wellas the location of the texture colors). By applying a color from a colorpalette to one or more areas corresponding to a distinct color of atarget procedural texture, the procedural texture modification system106 can preserve the distinctiveness of one or more zones of the targetprocedural texture while applying the colors from the color palette. Asan example, the procedural texture modification system 106 can apply oneor more colors from a color palette to texture color parametersaccording to a pairing determined between the colors and the texturecolor parameters. Indeed, the procedural texture modification system 106can apply a color from a color palette to one or more areascorresponding to a paired texture color parameter from the targetprocedural texture.

As an example, the procedural texture modification system 106 can applycolors from a color palette to a target procedural texture by replacingtexture color parameters with color parameters corresponding to thecolors from the color palette. Indeed, the procedural texturemodification system 106 can replace the texture color parameters withthe colors from the color palette while preserving other visualproperties of the target procedural texture. For example, the proceduraltexture modification system 106 can apply the colors from the colorpalette to the target procedural texture while preserving the finish,structure, volume, and/or shading characteristics of the targetprocedural texture. Moreover, the procedural texture modification system106 can apply the colors from the color palette to the target proceduraltexture while preserving material properties of the target proceduraltexture (e.g., attributes associated with the type of material of thetexture). Indeed, the procedural texture modification system 106 canutilize a variety of substitution approaches to apply colors from acolor palette to a target procedural texture. Upon applying colors froma color palette to a target procedural texture, the procedural texturemodification system 106 can display the modified procedural texturewithin a user interface for modifying procedural textures as describedin greater detail below in reference to FIGS. 7 and 8. Furthermore,although, one or more embodiments herein describe the procedural texturemodification system 106 applying colors from a color palette to a targetprocedural texture, the procedural texture modification system 106 canapply colors from a color palette to a target image in accordance withone or more embodiments herein.

Furthermore, the procedural texture modification system 106 can enable auser to perform user interventions prior to applying colors from a colorpalette to a target procedural texture. For instance, the proceduraltexture modification system 106 can enable a user to change a number ofcolors in a color palette and/or change a number of texture colorparameters identified from a target procedural texture. Additionally,the procedural texture modification system 106 can enable a user toreorganize the ordering of colors from a color palette and/or theordering of texture color parameters identified from a target proceduraltexture. Moreover, the procedural texture modification system 106 canenable a user to delete one or more colors from a color palette and/orone or more texture color parameters identified from a target proceduraltexture.

As mentioned above, the procedural texture modification system 106 candisplay images, color palettes, and/or modified proceduraltextures/materials in a user interface for a single color applicationmode. For example, FIG. 7 illustrates an example user interface formodifying textures/materials based on a single color application mode.As shown in FIG. 7, the procedural texture modification system 106 candisplay an image 402 (e.g., in a display area for an image reference).Furthermore, as illustrated in FIG. 7, the procedural texturemodification system 106 can display a generated color palette 704 (e.g.,in a display area for extracted colors and/or a color palette).Additionally, as illustrated in FIG. 7, the procedural texturemodification system 106 can display a target procedural material 706(e.g., a graphical object with a material property) having a targetprocedural texture (e.g., in a display area for an initial materialand/or texture).

Moreover, as shown in FIG. 7, the procedural texture modification system106 can display one or more modified target procedural materials 708having one or more modified target procedural textures with appliedcolors from the color palette 704 in a single color application mode(e.g., in a display area for generated variations). Indeed, as shown inFIG. 7, the procedural texture modification system 106 can apply eachcolor from the color palette 704 to generate each variation for a targetprocedural material having a target procedural texture for a singlecolor application mode in accordance with one or more embodimentsherein. Then, as shown in FIG. 7, the procedural texture modificationsystem 106 can display the modified target procedural materials 708.

As mentioned above, the procedural texture modification system 106 candisplay images, color palettes, and/or modified proceduraltextures/materials in a user interface for a plurality of colorsapplication mode. For example, FIG. 8 illustrates an example userinterface for modifying textures/materials based on a plurality of colorapplication mode. As shown in FIG. 8, the procedural texturemodification system 106 can display an image 402 (e.g., in a displayarea for an image reference). Furthermore, as illustrated in FIG. 8, theprocedural texture modification system 106 can display a generated colorpalette 804 (e.g., in a display area for extracted colors and/or a colorpalette). Additionally, as illustrated in FIG. 8, the procedural texturemodification system 106 can display a target procedural material 806(e.g., a graphical object with a material property) having a targetprocedural texture (e.g., in a display area for an initial materialand/or texture).

Moreover, as shown in FIG. 8, the procedural texture modification system106 can display a modified target procedural material 808 having amodified target procedural texture with applied colors from the colorpalette 804 in a plurality of colors application mode (e.g., in adisplay area for a generated variation). Indeed, as shown in FIG. 8, theprocedural texture modification system 106 can apply one or more colorsfrom the color palette 804 to generate a modified target proceduralmaterial having a modified target procedural texture for a plurality ofcolors application mode in accordance with one or more embodimentsherein. Then, as shown in FIG. 8, the procedural texture modificationsystem 106 can display the modified target procedural material 808.Although one or more embodiments herein describe the procedural texturemodification system 106 displaying a modified target procedural materialhaving a target procedural texture, the procedural texture modificationsystem 106 can display a target procedural texture in accordance withone or more embodiments herein.

Turning now to FIG. 9, additional detail will be provided regardingcomponents and capabilities of one embodiment of the procedural texturemodification system 106. In particular, FIG. 9 illustrates an embodimentof an example procedural texture modification system 106 executed by acomputing device 900 (e.g., the server device(s) 102 and/or the clientdevice 110). As shown by the embodiment in FIG. 9, the computing device900 can include or host the digital graphics system 104 and theprocedural texture modification system 106. For example, the proceduraltexture modification system 106 can include an interface module 904, oneor more microprocessors 906, an image module 908, instructions 910,original target texture data 912, a texture color modifier 914, modifiedtexture data 916, color palette data 918, a color palette generator 920,and an image color selector 922.

For instance, as illustrated in FIG. 9, the procedural texturemodification system 106 includes the interface module 904 for generatingand displaying an interface for modifying textures/materials. Forexample, the interface module 904 can include an area to display areceived digital image (e.g., an inspirational image) so that a user caneasily refer to the digital image. The interface module 904 alsoincludes an area to display a color palette generated from the digitalimage and an area to display a procedural texture/material (formodification). The interface module 904 can display digital images,color palettes, textures, and/or modified textures as described above(e.g., in relation to FIGS. 2A-2C, 4, 5A-5F, 7, and 8).

Additionally, as shown in FIG. 9, the procedural texture modificationsystem 106 can include the image module 908 for receiving and displayinga digital image. Indeed, the image module 908 can receive data fromimage storage 902 and display the digital image in the image displayarea of the user interface (e.g., from the interface module 904).Moreover, as shown in FIG. 9, the procedural texture modification system106 can include the color palette generator 920 for generating a colorpalette from the colorimetric parameters (or settings) of the digitalimage (e.g., from the image module 908). As shown in FIG. 9, theprocedural texture modification system 106 includes the image colorselector 922. Indeed, the image color selector 922 can quantify thepixels of an image, assign a weight to each compartment of the color,alter the weight according to color properties, select the N mostimportant weight colors, and generate a color palette by utilizing theselected N colors. For instance, the color palette generator 920 and/orthe image color selector 922 can receive a digital image, receiveselections of color property preferences, and/or extract colors from thedigital image to generate a color palette as described above (e.g., inrelation to FIG. 3).

Furthermore, as shown in FIG. 9, the procedural texture modificationsystem 106 also includes the texture color modifier 914 for applying atleast one color of the color palette from the color palette data 918(e.g., color palette data generated by the color palette generator 920such as color property preference data and/or color setting or parameterdata) on a target procedural texture from the original target texturedata 912 (e.g., a target procedural texture/material and/or texturecolor parameter) to obtain the modified texture data 916 (e.g., themodified target procedural texture/material having at least one color ofthe color palette and/or modified texture color parameters). Forexample, the texture color modifier 914 can apply colors from a colorpalette to a target procedural texture using a single color and/or aplurality of colors application mode as described above (e.g., inrelation to FIG. 6).

Furthermore, in reference to FIG. 9, the implementation of variousmodules of a procedural texture modification system can be achieved byuse of processor instructions or processor commands that enable themodules to perform the operation and/or operations related to themodules. For instance, processor instructions can be in the form of oneor more software packages and/or software modules implemented by the oneor more microprocessors 906. Furthermore, the module (or modules) and/orthe software provided in a computer program product including arecording medium (or media) that can be used by a computer and includingprogrammed code readable by a computer integrated in the medium (ormedia) can allow a software application to run on a computer or otherdevice having one or more microprocessors such as a tablet (and/or othermobile device, laptop, and/or desktop computer).

Furthermore, according to various design variants, the microprocessor906, as well as the working memory with instructions 910 can becentralized for all the modules or be externally arranged, withconnection to the different modules, or be distributed locally in such away that one or more modules can each have a microprocessor and/or amemory including instructions.

Each of the components 902-922 of the computing device 900 (e.g., thecomputing device 900 implementing the procedural texture modificationsystem 106), as shown in FIG. 9, may be in communication with oneanother using any suitable communication technologies. It will berecognized that although components 902-922 of the computing device 900are shown to be separate in FIG. 9, any of components 902-922 may becombined into fewer components, such as into a single facility ormodule, divided into more components, or configured into differentcomponents as may serve a particular embodiment.

The components 902-922 of the computing device 900 can comprisesoftware, hardware, or both. For example, the components 902-922 cancomprise one or more instructions stored on a computer-readable storagemedium and executable by processors of one or more computing devices.When executed by the one or more processors, the computer-executableinstructions of the procedural texture modification system 106 (e.g.,via the computing device 900) can cause a client device and/or a serverdevice to perform the methods described herein. Alternatively, thecomponents 902-922 and their corresponding elements can comprisehardware, such as a special purpose processing device to perform acertain function or group of functions. Additionally, the components902-922 can comprise a combination of computer-executable instructionsand hardware.

Furthermore, the components 902-922 of the procedural texturemodification system 106 may, for example, be implemented as one or moreoperating systems, as one or more stand-alone applications, as one ormore modules of an application, as one or more plug-ins, as one or morelibrary functions or functions that may be called by other applications,and/or as a cloud-computing model. Thus, the components 902-922 may beimplemented as a stand-alone application, such as a desktop or mobileapplication. Furthermore, the components 902-922 may be implemented asone or more web-based applications hosted on a remote server. Thecomponents 902-922 may also be implemented in a suite of mobile deviceapplications or “apps.” To illustrate, the components 902-922 may beimplemented in an application, including but not limited to, ADOBE®DOCUMENT CLOUD, ADOBE® CAPTIVATE® PRIME, ADOBE® ANALYTICS CLOUD, ADOBE®ANALYTICS, ADOBE® AUDIENCE MANAGER, ADOBE® CAMPAIGN, ADOBE® EXPERIENCEMANAGER, ADOBE® TARGET, SUBSTANCE ALCHEMIST, SUBSTANCE PAINTER,SUBSTANCE DESIGNER, SUBSTANCE SOURCE, SUBSTANCE B2M, AND SUBSTANCEPLAYER. “ADOBE,” “ADOBE® DOCUMENT CLOUD,” “ADOBE CAPTIVATE PRIME,”“ADOBE ANALYTICS CLOUD,” “ADOBE ANALYTICS,” “ADOBE AUDIENCE MANAGER,”“ADOBE CAMPAIGN,” “ADOBE EXPERIENCE MANAGER,” “ADOBE TARGET,” “SUBSTANCEALCHEMIST,” “SUBSTANCE PAINTER,” “SUBSTANCE DESIGNER,” “SUBSTANCESOURCE,” “SUBSTANCE B2M,” AND “SUBSTANCE PLAYER” are either registeredtrademarks or trademarks of Adobe Inc. in the United States and/or othercountries.

FIGS. 1-9, the corresponding text, and the examples provide a number ofdifferent methods, systems, devices, and non-transitorycomputer-readable media of the procedural texture modification system106. In addition to the foregoing, one or more embodiments can also bedescribed in terms of flowcharts comprising acts for accomplishing aparticular result, as shown in FIGS. 10 and 11. FIGS. 10 and 11 may beperformed with more or fewer acts. Further, the acts may be performed indiffering orders. Additionally, the acts described herein may berepeated or performed in parallel with one another or parallel withdifferent instances of the same or similar acts.

As mentioned above, FIG. 10 illustrates a flowchart of a series of acts1000 for extracting one or more colors from an input image to generate acolor palette and applying colors from the color palette to a targetprocedural texture in accordance with one or more embodiments. WhileFIG. 10 illustrates acts according to one embodiment, alternativeembodiments may omit, add to, reorder, and/or modify any of the actsshown in FIG. 10. The acts of FIG. 10 can be performed as part of amethod. Alternatively, a non-transitory computer-readable medium cancomprise instructions that, when executed by one or more processors,cause a computing device to perform the acts of FIG. 10. In someembodiments, a system can perform the acts of FIG. 10.

As illustrated in FIG. 10, the series of acts 1000 includes an act 1002of generating and displaying a work interface. In particular, the act1002 can include generating a work interface with a display area for thedisplay of a digital image, a display area for the display of a colorpalette, and a display area for the display of a procedural texture(that can be modified).

As illustrated in FIG. 10, the series of acts 1000 includes an act 1004of receiving an image and displaying the image. In particular, the act1004 can include receiving an image and displaying the image in adisplay area for the image.

As illustrated in FIG. 10, the series of acts 1000 includes an act 1006of using color settings (or parameters) of an image to generate a colorpalette. Furthermore, the act 1006 can include preselecting colorsrepresentative of an image to generate a color palette. Moreover, theact 1006 can include selecting colors representative of an image byquantifying pixels of the image to create color compartments, assigninga weight to each color compartment, altering the weight according tocolor properties, selecting N colors having the most important weight,and generating a color palette according to the N colors. Additionally,the act 1006 can include excluding a color neighbor after selecting acolor for a color palette.

As illustrated in FIG. 10, the series of acts 1000 includes an act 1008of displaying a color palette. In particular, the act 1008 can includedisplaying a generated color palette in a display area for a palettecolor.

As illustrated in FIG. 10, the series of acts 1000 includes an act 1010of applying at least one color of a generated palette to a targetprocedural texture. Furthermore, the act 1010 can include proposing to auser via a working interface at least two modes of color application ona target procedural texture. For example, the application modes ofcolors can include a single color application mode and a plurality ofcolors application mode. Moreover, the act 1010 can include receiving aselection of one of the color application modes. Additionally, the act1010 can include determining a color or colors according to a receivedcolor application mode. Furthermore, the act 1010 can include applying acolor or colors on a target procedural texture. In addition, the act1010 can include applying a single color selected from the color palettein the single color application mode.

Furthermore, the act 1010 can include assigning each color of the colorpalette to a different colorimetric parameter of a target proceduraltexture in the plurality of colors application mode. Additionally, theact 1010 can include identifying colorimetric parameters havingdistinctive characteristics from a target procedural texture. Moreover,the act 1010 can include pairing a separate color from the color paletteto each of the identified distinctive colorimetric parameters. Asillustrated in FIG. 10, the series of acts 1000 includes an act 1012 ofdisplaying a modified texture. In particular, the act 1012 can includedisplaying a modified texture with an applied color or colors.

As mentioned above, FIG. 11 illustrates a flowchart of a series of acts1100 for extracting one or more colors from an input image to generate acolor palette and applying colors from the color palette to a targetprocedural texture in accordance with one or more embodiments. WhileFIG. 11 illustrates acts according to one embodiment, alternativeembodiments may omit, add to, reorder, and/or modify any of the actsshown in FIG. 11. The acts of FIG. 11 can be performed as part of amethod. Alternatively, a non-transitory computer-readable medium cancomprise instructions that, when executed by one or more processors,cause a computing device to perform the acts of FIG. 11. In someembodiments, a system can perform the acts of FIG. 11.

As illustrated in FIG. 11, the series of acts 1100 includes an act 1102of generating a color palette from an input image. In particular, theact 1102 can include extracting one or more colors from an input imageto generate a color palette. Furthermore, the act 1102 can includereceiving an input image (e.g., in a graphical user interface).Additionally, the act 1102 can include quantifying pixels of an inputimage into color compartments. The act 1102 can also include assigningweights to color compartments. Furthermore, the act 1102 can includealtering weights of color compartments based on a color propertypreference. For example, a color property preference can include aselection of a color palette type. Additionally, as an example, a colorpalette type can include a representative color palette, a pure colorpalette, a bright color palette, a pastel color palette, a deep colorpalette, or a dark color palette. Moreover, the act 1102 can includeextracting one or more colors from an input image to generate a colorpalette by selecting the one or more colors based on weightscorresponding to color compartments. Additionally, the act 1102 can alsoinclude selecting one or more colors based on weights corresponding tocolor compartments and color similarities between the colorcompartments.

Furthermore, the act 1102 can include identifying a first colorcompartment corresponding to a max weight from weights (e.g., weights ofcolor compartments) and/or selecting one or more colors by selecting afirst color based on the first color compartment. Additionally, the act1102 can include determining distances between a first color from afirst color compartment and color compartments. For example, distancescan include a measure of color similarities between a first colorcompartment and color compartments. Moreover, the act 1102 can includealtering weights of color compartments based on distances to generateadditional weights. The act 1102 can also include identifying a secondcolor compartment corresponding to a max weight from additional weights(e.g., additional weights of color compartments) and/or selecting one ormore colors by selecting a second color based on the second colorcompartment.

In addition to (or in the alternative to) the acts above, the proceduraltexture modification system 106 can also perform a step for generating acolor palette from one or more colors of the input image and a colorproperty preference selection. For example, the acts and algorithmsdescribed above in relation to FIG. 3 (e.g., the acts 302-314) cancomprise the corresponding acts and algorithms (i.e., structures) forperforming a step for generating a color palette from one or more colorsof the input image and a color property preference selection.

As illustrated in FIG. 11, the series of acts 1100 includes an act 1104of applying a color from a color palette to a target procedural texture.In particular, the act 1104 can include applying at least one color froma color palette to a target procedural texture (and/or to a targetimage). Furthermore, the act 1104 can include identifying at least onetexture color parameter corresponding to a target procedural texture(e.g., based on a selection of a plurality of colors application mode).Additionally, the act 1104 can include applying at least one color froma color palette to a target procedural texture by applying the at leastone color from the color palette to at least one texture colorparameter.

Moreover, the act 1104 can include pairing texture color parameters froman identified at least one texture color parameter corresponding to atarget procedural texture to colors from at least one color from a colorpalette. The act 1104 can also include applying at least one color froma color palette to a target procedural texture by applying the at leastone color from the color palette to at least one texture color parameterbased on pairings of texture color parameters to colors from the atleast one color from the color palette. Additionally, the act 1104 caninclude ordering colors from at least one color from a color paletteinto an ordered list of colors based on a color space characteristic.For example, a color space characteristic can include huecharacteristics or brightness characteristics. Furthermore, the act 1104can include ordering texture color parameters from an identified atleast one texture color parameter into an ordered list of texture colorparameters based on a color space characteristic. For instance, atexture color parameter can include a colorimetric parameter of thetarget procedural texture. Moreover, the act 1104 can include orderingcolors from at least one color from a color palette into an ordered listof colors based on color representativeness of the colors within aninput image. Additionally, the act 1104 can include ordering texturecolor parameters from an identified at least one texture color parameterinto an ordered list of texture color parameters based on colorrepresentativeness of the texture color parameters within a targetprocedural texture. The act 1104 can also include pairing texture colorparameters to colors from at least one color from a color palette bypairing an ordered list of texture color parameters to an ordered listof colors (e.g., from the color palette).

In addition to (or in the alternative to) the acts above, the proceduraltexture modification system 106 can also perform a step for applying atleast one color from a color palette to a target procedural texture. Forexample, the acts and algorithms described above in relation to FIG. 6(e.g., the acts 602-614) can comprise the corresponding acts andalgorithms (i.e., structures) for performing a step for applying atleast one color from the color palette to a target procedural texture.

As illustrated in FIG. 11, the series of acts 1100 includes an act 1106of displaying a modified texture. In particular, the act 1106 caninclude displaying a target procedural texture (and/or a target image)with an applied at least one color from a color palette in a graphicaluser interface (for modifying textures). The act 1106 can also includedisplaying a colorized visual representation of a color palette in agraphical user interface (for modifying textures). Furthermore, the act1106 can include displaying an input image in a graphical user interface(for modifying textures).

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., memory), and executes those instructions, thereby performing oneor more processes, including one or more of the processes describedherein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed by a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed by ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer-executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. As used herein, the term “cloud computing”refers to a model for enabling on-demand network access to a shared poolof configurable computing resources. For example, cloud computing can beemployed in the marketplace to offer ubiquitous and convenient on-demandaccess to the shared pool of configurable computing resources. Theshared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In addition, as used herein, the term “cloud-computingenvironment” refers to an environment in which cloud computing isemployed.

FIG. 12 illustrates a block diagram of an example computing device 1200that may be configured to perform one or more of the processes describedabove. One will appreciate that one or more computing devices, such asthe computing device 1200 may represent the computing devices describedabove (e.g., computing device 900, server device(s) 102, and clientdevice 110). In one or more embodiments, the computing device 1200 maybe a mobile device (e.g., a mobile telephone, a smartphone, a PDA, atablet, a laptop, a camera, a tracker, a watch, a wearable device,etc.). In some embodiments, the computing device 1200 may be anon-mobile device (e.g., a desktop computer or another type of clientdevice). Further, the computing device 1200 may be a server device thatincludes cloud-based processing and storage capabilities.

As shown in FIG. 12, the computing device 1200 can include one or moreprocessor(s) 1202, memory 1204, a storage device 1206, input/outputinterfaces 1208 (or “I/O interfaces 1208”), and a communicationinterface 1210, which may be communicatively coupled by way of acommunication infrastructure (e.g., bus 1212). While the computingdevice 1200 is shown in FIG. 12, the components illustrated in FIG. 12are not intended to be limiting. Additional or alternative componentsmay be used in other embodiments. Furthermore, in certain embodiments,the computing device 1200 includes fewer components than those shown inFIG. 12. Components of the computing device 1200 shown in FIG. 12 willnow be described in additional detail.

In particular embodiments, the processor(s) 1202 includes hardware forexecuting instructions, such as those making up a computer program. Asan example, and not by way of limitation, to execute instructions, theprocessor(s) 1202 may retrieve (or fetch) the instructions from aninternal register, an internal cache, memory 1204, or a storage device1206 and decode and execute them.

The computing device 1200 includes memory 1204, which is coupled to theprocessor(s) 1202. The memory 1204 may be used for storing data,metadata, and programs for execution by the processor(s). The memory1204 may include one or more of volatile and non-volatile memories, suchas Random-Access Memory (“RAM”), Read-Only Memory (“ROM”), a solid-statedisk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of datastorage. The memory 1204 may be internal or distributed memory.

The computing device 1200 includes a storage device 1206 includesstorage for storing data or instructions. As an example, and not by wayof limitation, the storage device 1206 can include a non-transitorystorage medium described above. The storage device 1206 may include ahard disk drive (HDD), flash memory, a Universal Serial Bus (USB) driveor a combination these or other storage devices.

As shown, the computing device 1200 includes one or more I/O interfaces1208, which are provided to allow a user to provide input to (such asuser strokes), receive output from, and otherwise transfer data to andfrom the computing device 1200. These I/O interfaces 1208 may include amouse, keypad or a keyboard, a touch screen, camera, optical scanner,network interface, modem, other known I/O devices or a combination ofsuch I/O interfaces 1208. The touch screen may be activated with astylus or a finger.

The I/O interfaces 1208 may include one or more devices for presentingoutput to a user, including, but not limited to, a graphics engine, adisplay (e.g., a display screen), one or more output drivers (e.g.,display drivers), one or more audio speakers, and one or more audiodrivers. In certain embodiments, I/O interfaces 1208 are configured toprovide graphical data to a display for presentation to a user. Thegraphical data may be representative of one or more graphical userinterfaces and/or any other graphical content as may serve a particularimplementation.

The computing device 1200 can further include a communication interface1210. The communication interface 1210 can include hardware, software,or both. The communication interface 1210 provides one or moreinterfaces for communication (such as, for example, packet-basedcommunication) between the computing device and one or more othercomputing devices or one or more networks. As an example, and not by wayof limitation, communication interface 1210 may include a networkinterface controller (NIC) or network adapter for communicating with anEthernet or other wire-based network or a wireless NIC (WNIC) orwireless adapter for communicating with a wireless network, such as aWI-FI. The computing device 1200 can further include a bus 1212. The bus1212 can include hardware, software, or both that connects components ofcomputing device 1200 to each other.

In the foregoing specification, the invention has been described withreference to specific example embodiments thereof. Various embodimentsand aspects of the invention(s) are described with reference to detailsdiscussed herein, and the accompanying drawings illustrate the variousembodiments. The description above and drawings are illustrative of theinvention and are not to be construed as limiting the invention.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. For example, the methods described herein may beperformed with less or more steps/acts or the steps/acts may beperformed in differing orders. Additionally, the steps/acts describedherein may be repeated or performed in parallel to one another or inparallel to different instances of the same or similar steps/acts. Thescope of the invention is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

What is claimed is:
 1. A non-transitory computer-readable medium storinginstructions that, when executed by at least one processor, cause acomputing device to perform operations comprising: receiving an inputimage; extracting colors from the input image to generate a colorpalette; ordering the colors from the color palette into an ordered listof colors based on color representativeness of colors determinedutilizing pixel counts for each of the colors from within the inputimage; identifying an ordered list of texture color parameters fromtexture color parameters corresponding to a target procedural texture,wherein the ordered list of texture color parameters is based on colorrepresentativeness of texture color parameters determined utilizingpixel counts for each of the texture color parameters from within thetarget procedural texture; applying the colors from the color palettefrom the input image to the target procedural texture by replacing oneor more texture color parameters from the target procedural texture withthe colors from the color palette utilizing a mapping of the orderedlist of texture color parameters to the ordered list of colors; anddisplaying the target procedural texture with the applied colors fromthe color palette in a graphical user interface.
 2. The non-transitorycomputer-readable medium of claim 1, further comprising instructionsthat, when executed by the at least one processor, cause the computingdevice to perform operations comprising: quantifying pixels of the inputimage into color compartments; assigning weights to the colorcompartments; altering the weights of the color compartments based on acolor property preference; and extracting the colors from the inputimage to generate the color palette by selecting the colors based on theweights corresponding to the color compartments.
 3. The non-transitorycomputer-readable medium of claim 2, further comprising instructionsthat, when executed by the at least one processor, cause the computingdevice to perform operations comprising: identifying a first colorcompartment corresponding to a max weight from the weights; and whereinselecting the colors comprises selecting a first color based on thefirst color compartment.
 4. The non-transitory computer-readable mediumof claim 3, further comprising instructions that, when executed by theat least one processor, cause the computing device to perform operationscomprising: determining distances between the first color from the firstcolor compartment and the color compartments, wherein the distancescomprise a measure of color similarities between the first colorcompartment and the color compartments; altering the weights of thecolor compartments based on the distances to generate additionalweights; identifying a second color compartment corresponding to a maxweight from the additional weights; and wherein selecting the colorsfurther comprises selecting a second color based on the second colorcompartment.
 5. The non-transitory computer-readable medium of claim 2,wherein the color property preference comprises a selection of a colorpalette type, the color palette type comprising a representative colorpalette, a pure color palette, a bright color palette, a pastel colorpalette, a deep color palette, or a dark color palette.
 6. Thenon-transitory computer-readable medium of claim 1, wherein the texturecolor parameters comprise colorimetric parameters of the targetprocedural texture.
 7. The non-transitory computer-readable medium ofclaim 1, further comprising instructions that, when executed by the atleast one processor, cause the computing device to perform operationscomprising ordering the colors from the color palette into the orderedlist of colors based on the color representativeness of colors withinthe input image by: determining a number of pixels, from within theinput image, associated with each color from the colors; and utilizingthe number of pixels associated with each color to order the colors intothe ordered list of colors.
 8. The non-transitory computer-readablemedium of claim 1, further comprising instructions that, when executedby the at least one processor, cause the computing device to performoperations comprising ordering the texture color parameterscorresponding to the target procedural texture based on the colorrepresentativeness of the texture color parameters within the targetprocedural texture by: determining a number of pixels, from within thetarget procedural texture, associated with each texture color parameterfrom the texture color parameters; and utilizing the number of pixelsassociated with each texture color parameter to order the texture colorparameters into the ordered list of texture color parameters.
 9. Thenon-transitory computer-readable medium of claim 1, further comprisinginstructions that, when executed by the at least one processor, causethe computing device to perform operations comprising displaying acolorized visual representation of the color palette in the graphicaluser interface for modifying textures.
 10. A system comprising: one ormore memory devices comprising an input image and a target proceduraltexture; and one or more processors configured to cause the system to:extract colors from the input image to generate a color palette by:quantifying pixels of the input image into color compartments; assigningweights to the color compartments; altering the weights of the colorcompartments based on a color property preference; and selecting thecolors based on the weights corresponding to the color compartments andcolor similarities between the color compartments; order the colors fromthe color palette into an ordered list of colors by utilizing a pixelcount based color representativeness of colors within the input image;identify an ordered list of texture color parameters from texture colorparameters corresponding to the target procedural texture, wherein theordered list of texture color parameters is ordered utilizing a pixelcount based color representativeness of texture color parameters of thetarget procedural texture; and apply the colors from the color palettefrom the input image to the target procedural texture by replacing oneor more texture color parameters from the target procedural texture withthe colors from the color palette utilizing a mapping of the orderedlist of texture color parameters to the ordered list of colors.
 11. Thesystem of claim 10, wherein the one or more processors are furtherconfigured to cause the system to: identify a first color compartmentcorresponding to a max weight from the weights; and wherein selectingthe colors comprises selecting a first color based on the first colorcompartment.
 12. The system of claim 11, wherein the one or moreprocessors are further configured to cause the system to: determinedistances between the first color from the first color compartment andthe color compartments, wherein the distances comprise a measure ofcolor similarities between the first color compartment and the colorcompartments; alter the weights of the color compartments based on thedistances to generate additional weights; identify a second colorcompartment corresponding to a max weight from the additional weights;and wherein selecting the colors further comprises selecting a secondcolor based on the second color compartment.
 13. The system of claim 10,wherein the color property preference comprises a selection of a colorpalette type, the color palette type comprising a representative colorpalette, a pure color palette, a bright color palette, a pastel colorpalette, a deep color palette, or a dark color palette.
 14. The systemof claim 10, wherein the texture color parameters comprise colorimetricparameters of the target procedural texture.
 15. The system of claim 10,wherein the one or more processors are further configured to cause thesystem to order the colors from the color palette into the ordered listof colors by ordering color space characteristic values corresponding toeach color from the colors.
 16. The system of claim 15, wherein thecolor space characteristic comprises a hue characteristic or abrightness characteristic.
 17. The system of claim 10, wherein the oneor more processors are further configured to cause the system to displaythe target procedural texture with the applied colors from the colorpalette in a graphical user interface.
 18. A computer-implemented methodcomprising: receiving an input image; extracting colors from the inputimage to generate a color palette; ordering the colors from the colorpalette into an ordered list of colors based on color representativenessof colors determined utilizing pixel counts for each of the colors fromwithin the input image; identifying an ordered list of texture colorparameters from texture color parameters corresponding to a targetprocedural texture, wherein the ordered list of texture color parametersis based on color representativeness of texture color parametersdetermined utilizing pixel counts for each of the texture colorparameters from within the target procedural texture; applying thecolors from the color palette from the input image to the targetprocedural texture by replacing one or more texture color parametersfrom the target procedural texture with the colors from the colorpalette utilizing a mapping of the ordered list of texture colorparameters to the ordered list of colors; and displaying the targetprocedural texture with the applied colors from the color palette in agraphical user interface.
 19. The computer-implemented method of claim18, further comprising utilizing weights of color compartments based ona color property preference selection to extract the colors from theinput image, wherein the color property preference selection comprises aselection of a color palette type, the color palette type comprising arepresentative color palette, a pure color palette, a bright colorpalette, a pastel color palette, a deep color palette, or a dark colorpalette.
 20. The computer-implemented method of claim 18, furthercomprising: displaying the input image in the graphical user interface;and displaying a colorized visual representation of the ordered colorpalette in the graphical user interface.